Date: Fri, 19 Jun 2009 18:55:24 GMT From: Gabor Pali <pgj@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 164729 for review Message-ID: <200906191855.n5JItOCj081970@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=164729 Change 164729 by pgj@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();
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906191855.n5JItOCj081970>