public inbox for util-linux@vger.kernel.org
 help / color / mirror / Atom feed
From: Sami Kerola <kerolasa@iki.fi>
To: util-linux@vger.kernel.org
Cc: kerolasa@iki.fi
Subject: [PATCH 06/15] cytune: prefer sigaction(), and remove unnecessary abstractions
Date: Sun,  4 May 2014 16:49:47 +0100	[thread overview]
Message-ID: <1399218596-21321-7-git-send-email-kerolasa@iki.fi> (raw)
In-Reply-To: <1399218596-21321-1-git-send-email-kerolasa@iki.fi>

The signal(3) system call is not exactly deprecated, but it should not be
used in new code.  The gettimeofday() does not require timezone to be
real variable, so get rid of it.  The mvtime #define was in use only
which make literal expression more readable.

Signed-off-by: Sami Kerola <kerolasa@iki.fi>
---
 sys-utils/cytune.c | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/sys-utils/cytune.c b/sys-utils/cytune.c
index 7ca39c7..4cc7db6 100644
--- a/sys-utils/cytune.c
+++ b/sys-utils/cytune.c
@@ -72,8 +72,6 @@ int cmon_index;
 static int global_argc, global_optind;
 static char ***global_argv;
 
-#define mvtime(tvpto, tvpfrom)  (((tvpto)->tv_sec = (tvpfrom)->tv_sec),(tvpto)->tv_usec = (tvpfrom)->tv_usec)
-
 static void __attribute__ ((__noreturn__)) usage(FILE * out)
 {
 	fprintf(out, USAGE_HEADER);
@@ -143,17 +141,22 @@ static void query_tty_stats(int argc, char **argv, unsigned int interval, int nu
 {
 	struct cyclades_monitor cywork;
 	struct timeval lasttime, thistime;
-	struct timezone tz = { 0, 0 };
 	int i;
 	double diff;
 	double xfer_rate;
+	struct sigaction sigact;
 
 	cmon = xmalloc(sizeof(struct cyclades_control) * numfiles);
 
-	if (signal(SIGINT, summary) ||
-	    signal(SIGQUIT, summary) || signal(SIGTERM, summary))
+	sigemptyset(&sigact.sa_mask);
+	sigact.sa_handler = &summary;
+	sigact.sa_flags = SA_RESTART;
+	if (sigaction(SIGINT, &sigact, NULL) ||
+	    sigaction(SIGQUIT, &sigact, NULL) ||
+	    sigaction(SIGTERM, &sigact, NULL))
 		err(EXIT_FAILURE, _("cannot set signal handler"));
-	if (gettimeofday(&lasttime, &tz))
+
+	if (gettimeofday(&lasttime, NULL))
 		err(EXIT_FAILURE, _("gettimeofday failed"));
 
 	for (i = optind; i < argc; i++) {
@@ -177,10 +180,11 @@ static void query_tty_stats(int argc, char **argv, unsigned int interval, int nu
 	while (1) {
 		sleep(interval);
 
-		if (gettimeofday(&thistime, &tz))
+		if (gettimeofday(&thistime, NULL))
 			err(EXIT_FAILURE, _("gettimeofday failed"));
 		diff = dtime(&thistime, &lasttime);
-		mvtime(&lasttime, &thistime);
+		lasttime.tv_sec = thistime.tv_sec;
+		lasttime.tv_usec = thistime.tv_usec;
 
 		for (i = optind; i < argc; i++) {
 			cmon_index = i - optind;
-- 
1.9.2


  parent reply	other threads:[~2014-05-04 15:50 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-04 15:49 [PATCH 00/15] cytune modernization Sami Kerola
2014-05-04 15:49 ` [PATCH 01/15] cytune: rename threshold and timeout variables Sami Kerola
2014-05-05  8:34   ` Benno Schulenberg
2014-05-04 15:49 ` [PATCH 02/15] cytune: remove unnecessary variables Sami Kerola
2014-05-05  8:29   ` Benno Schulenberg
2014-05-04 15:49 ` [PATCH 03/15] cytune: be consistent with interval data type Sami Kerola
2014-05-04 15:49 ` [PATCH 04/15] cytune: use single loop for setting and getting ioctl() calls Sami Kerola
2014-05-05  8:24   ` Benno Schulenberg
2014-05-04 15:49 ` [PATCH 05/15] cytune: kernel still does not have send_count in cyclades_monitor structure Sami Kerola
2014-05-04 15:49 ` Sami Kerola [this message]
2014-05-04 15:49 ` [PATCH 07/15] cytune: add cyg_get_mon() to avoid duplicate code Sami Kerola
2014-05-04 15:49 ` [PATCH 08/15] cytune: add structure to hold run time configuration Sami Kerola
2014-05-04 15:49 ` [PATCH 09/15] cytune: pull signal handling and statistic priting apart Sami Kerola
2014-05-04 15:49 ` [PATCH 10/15] cytune: remove unnecessary type casts Sami Kerola
2014-05-04 15:49 ` [PATCH 11/15] cytune: deprecate undescriptive options Sami Kerola
2014-05-04 15:49 ` [PATCH 12/15] cytune: add filename to struct cyclades_control Sami Kerola
2014-05-04 15:49 ` [PATCH 13/15] cytune: add noreturn function attributes Sami Kerola
2014-05-04 15:49 ` [PATCH 14/15] cytune: use matching type in struct cyclades_control with kernel Sami Kerola
2014-05-04 15:49 ` [PATCH 15/15] cytune: update copyright Sami Kerola
2014-05-07  7:10 ` [PATCH 00/15] cytune modernization Karel Zak
2014-05-07  8:12   ` Sami Kerola

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1399218596-21321-7-git-send-email-kerolasa@iki.fi \
    --to=kerolasa@iki.fi \
    --cc=util-linux@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox