Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 20 Jul 1996 23:48:22 +0000 (GMT)
From:      Adam David <adam@veda.is>
To:        freebsd-current@freebsd.org
Subject:   missed SIGALRM
Message-ID:  <199607202348.XAA06918@veda.is>

next in thread | raw e-mail | index | archive | help
I have noticed that a SIGALRM can sometimes be missed altogether under certain
conditions, perhaps as a side-effect of heavy machine load. I am looking into
this problem, and any other datapoints/suggestions are welcome. The following
program (in its more complete version) stops doing its stuff once in a while
(typically once a day or more often) and needs to be restarted as a result.
The likelihood of this occuring seems related to periods of heavy system load.

int tick;

handler() { tick = 1; }

set_tick() {
	tick = 0;
	signal(SIGALRM, handler);
	alarm(1);
}

get_tick() { return tick; }

main() {
	set_tick();
	for (;;) {
		if (get_tick()) {
			/* do stuff */
			set_tick();
		}
	}
}

--
Adam David <adam@veda.is>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199607202348.XAA06918>