Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Evergreen:11.4
at
at-3.1.8-massive_batch.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File at-3.1.8-massive_batch.patch of Package at
--- atd.c.orig +++ atd.c @@ -137,9 +137,10 @@ static char rcsid[] = "$Id: atd.c,v 1.28 static double load_avg = LOADAVG_MX; static time_t now; static time_t last_chg; -static int nothing_to_do; +static int nothing_to_do = 0; unsigned int batch_interval; static int run_as_daemon = 0; +static int hupped = 0; static volatile sig_atomic_t term_signal = 0; @@ -152,9 +153,10 @@ set_term(int dummy) } RETSIGTYPE -sdummy(int dummy) +set_hup(int dummy) { - /* Empty signal handler */ + hupped = 1; + nothing_to_do = 0; return; } @@ -790,6 +792,7 @@ run_loop() return next_job; last_chg = buf.st_mtime; + hupped = 0; if ((spool = opendir(".")) == NULL) perr("Cannot read " ATJOB_DIR); @@ -1014,7 +1017,7 @@ main(int argc, char *argv[]) */ sigaction(SIGHUP, NULL, &act); - act.sa_handler = sdummy; + act.sa_handler = set_hup; sigaction(SIGHUP, &act, NULL); sigaction(SIGTERM, NULL, &act); @@ -1030,9 +1033,10 @@ main(int argc, char *argv[]) do { now = time(NULL); next_invocation = run_loop(); - if (next_invocation > now) { + if ((next_invocation > now) && (!hupped)) { sleep(next_invocation - now); } + hupped = 0; } while (!term_signal); daemon_cleanup(); exit(EXIT_SUCCESS);
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor