From owner-p4-projects@FreeBSD.ORG Fri Jun 19 18:55:25 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BB3FA1065672; Fri, 19 Jun 2009 18:55:24 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7AF00106566C for ; Fri, 19 Jun 2009 18:55:24 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 698948FC0A for ; Fri, 19 Jun 2009 18:55:24 +0000 (UTC) (envelope-from pgj@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n5JItOAo081972 for ; Fri, 19 Jun 2009 18:55:24 GMT (envelope-from pgj@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n5JItOCj081970 for perforce@freebsd.org; Fri, 19 Jun 2009 18:55:24 GMT (envelope-from pgj@FreeBSD.org) Date: Fri, 19 Jun 2009 18:55:24 GMT Message-Id: <200906191855.n5JItOCj081970@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to pgj@FreeBSD.org using -f From: Gabor Pali To: Perforce Change Reviews Cc: Subject: PERFORCE change 164729 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Jun 2009 18:55:25 -0000 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();