From 920b90f2b03c60b6940e83cdce8c4b4bfbbc4268 Mon Sep 17 00:00:00 2001 From: "/C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org" Date: Wed, 9 Jan 2008 22:52:31 +0000 Subject: wake up the daemon iff there are real events to handle instead of polling (Based on comments from Max Kellerman) --- src/timer.c | 75 ------------------------------------------------------------- 1 file changed, 75 deletions(-) delete mode 100644 src/timer.c (limited to 'src/timer.c') diff --git a/src/timer.c b/src/timer.c deleted file mode 100644 index b85c286..0000000 --- a/src/timer.c +++ /dev/null @@ -1,75 +0,0 @@ -/* - * (C) 2006-2007 by Pablo Neira Ayuso - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - */ -#include -#include -#include -#include "conntrackd.h" -#include "timer.h" - -#define TIMESLICE_CREDIT (1000000 / STEPS_PER_SECONDS) /* 200 ms timeslice */ - -void timer_init(struct timer *timer) -{ - memset(timer, 0, sizeof(struct timer)); - timer->credits = TIMESLICE_CREDIT; -} - -void timer_start(struct timer *timer) -{ - gettimeofday(&timer->start, NULL); -} - -static int timeval_subtract(struct timeval *diff, - struct timeval *start, - struct timeval *stop) -{ - diff->tv_sec = stop->tv_sec - start->tv_sec; - diff->tv_usec = stop->tv_usec - start->tv_usec; - - if (diff->tv_usec < 0) { - diff->tv_usec += 1000000; - diff->tv_sec--; - } - - /* Return 1 if result is negative. */ - return diff->tv_sec < 0; -} - -void timer_stop(struct timer *timer) -{ - gettimeofday(&timer->stop, NULL); - timeval_subtract(&timer->diff, &timer->start, &timer->stop); -} - -int timer_adjust_credit(struct timer *timer) -{ - if (timer->diff.tv_sec != 0) { - timer->credits = TIMESLICE_CREDIT; - return 1; - } - - timer->credits -= timer->diff.tv_usec; - - if (timer->credits < 0) { - timer->credits += TIMESLICE_CREDIT; - if (timer->credits < 0) - timer->credits = TIMESLICE_CREDIT; - return 1; - } - return 0; -} -- cgit v1.2.3