PERFORCE change 164729 for review
Gabor Pali
pgj at FreeBSD.org
Fri Jun 19 18:55:25 UTC 2009
http://perforce.freebsd.org/chv.cgi?CH=164729
Change 164729 by pgj at petymeg-current on 2009/06/19 18:54:42
nettop:
- Fix a memory leak
- Ask netstat info only once per second
Affected files ...
.. //depot/projects/soc2009/pgj_libstat/src/usr.bin/nettop/main.c#2 edit
Differences ...
==== //depot/projects/soc2009/pgj_libstat/src/usr.bin/nettop/main.c#2 (text+ko) ====
@@ -15,7 +15,7 @@
char ch;
char running = 1;
struct socket_type_list *local, *inet;
- int st_flags;
+ int st_flags, refresh = 0;
initscr();
clear();
@@ -30,18 +30,23 @@
running = 0;
break;
}
- /* Get data. */
- local = netstat_stl_alloc();
- inet = netstat_stl_alloc();
- st_flags = NETSTAT_SOCKET_ALL;
- netstat_socket(PF_LOCAL, 0, 0, local, st_flags, NULL);
- netstat_socket(PF_INET, 0, 0, inet, st_flags, NULL);
- netstat_socket(PF_INET6, 0, 0, inet, st_flags, NULL);
- /* Render screen. */
- clear();
- screen(local, inet);
- refresh();
-
+ if (refresh == 0) {
+ /* Get data. */
+ local = netstat_stl_alloc();
+ inet = netstat_stl_alloc();
+ st_flags = NETSTAT_SOCKET_ALL;
+ netstat_socket(PF_LOCAL, 0, 0, local, st_flags, NULL);
+ netstat_socket(PF_INET, 0, 0, inet, st_flags, NULL);
+ netstat_socket(PF_INET6, 0, 0, inet, st_flags, NULL);
+ /* Render screen. */
+ clear();
+ screen(local, inet);
+ refresh();
+ netstat_stl_free(local);
+ netstat_stl_free(inet);
+ refresh = 3; /* Refresh it only in every 4th cycle */
+ }
+ refresh--;
usleep(250);
}
endwin();
More information about the p4-projects
mailing list