diff --git a/rogue3/main.c b/rogue3/main.c index c85e2a8..33060d9 100644 --- a/rogue3/main.c +++ b/rogue3/main.c @@ -374,10 +374,7 @@ setup() if (!author()) { -#ifdef SIGALRM - signal(SIGALRM, checkout); - alarm(CHECKTIME * 60); -#endif + md_start_checkout_timer(CHECKTIME * 60); num_checks = 0; } @@ -464,9 +461,6 @@ checkout(int p) "Last warning. You have %d minutes to leave", }; int checktime; -#ifdef SIGALRM - signal(SIGALRM, checkout); -#endif if (too_much()) { if (num_checks >= 3) @@ -474,9 +468,7 @@ checkout(int p) checktime = CHECKTIME / (num_checks + 1); if (num_checks < 3) chmsg(msgs[num_checks++], checktime); -#ifdef SIGALRM - alarm(checktime * 60); -#endif + md_start_checkout_timer(checktime * 60); } else { @@ -485,9 +477,7 @@ checkout(int p) chmsg("The load has dropped back down. You have a reprieve."); num_checks = 0; } -#ifdef SIGALRM - alarm(CHECKTIME * 60); -#endif + md_start_checkout_timer(CHECKTIME * 60); } } diff --git a/rogue3/mdport.c b/rogue3/mdport.c index a489454..955fa91 100644 --- a/rogue3/mdport.c +++ b/rogue3/mdport.c @@ -1510,11 +1510,10 @@ md_tstpsignal(void) #endif } -#if defined(CHECKTIME) void md_start_checkout_timer(int time) { - int checkout(); + void checkout(); #if defined(HAVE_ALARM) && defined(SIGALRM) signal(SIGALRM, checkout); @@ -1529,7 +1528,6 @@ md_stop_checkout_timer(void) signal(SIGALRM, SIG_IGN); #endif } -#endif long md_memused() diff --git a/rogue3/mdport.h b/rogue3/mdport.h index 05d4662..4e93402 100644 --- a/rogue3/mdport.h +++ b/rogue3/mdport.h @@ -187,6 +187,8 @@ void md_onsignal_exit(void); void md_onsignal_default(void); int md_issymlink(char *sp); int md_loadav(double *avg); +void md_start_checkout_timer(int time); +void md_stop_checkout_timer(void); long md_memused(void); int md_ucount(void); int md_unlockfile(FILE *fp);