Mercurial > hg > early-roguelike
changeset 212:12e070d1a780
rogue3: replace alarm() calls with a portable function.
Calls to alarm() in main.c are replaced with md_start_checkout_timer(),
so the #ifdefs around nonportable code can be confined to mdport.c.
author | John "Elwin" Edwards |
---|---|
date | Fri, 22 Jan 2016 19:19:48 -0500 |
parents | 382ff498acdd |
children | 3c0abb714974 |
files | rogue3/main.c rogue3/mdport.c rogue3/mdport.h |
diffstat | 3 files changed, 6 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/rogue3/main.c Thu Jan 21 21:10:23 2016 -0500 +++ b/rogue3/main.c Fri Jan 22 19:19:48 2016 -0500 @@ -374,10 +374,7 @@ if (!author()) { -#ifdef SIGALRM - signal(SIGALRM, checkout); - alarm(CHECKTIME * 60); -#endif + md_start_checkout_timer(CHECKTIME * 60); num_checks = 0; } @@ -464,9 +461,6 @@ "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 @@ 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 @@ 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); } }
--- a/rogue3/mdport.c Thu Jan 21 21:10:23 2016 -0500 +++ b/rogue3/mdport.c Fri Jan 22 19:19:48 2016 -0500 @@ -1510,11 +1510,10 @@ #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 @@ signal(SIGALRM, SIG_IGN); #endif } -#endif long md_memused()
--- a/rogue3/mdport.h Thu Jan 21 21:10:23 2016 -0500 +++ b/rogue3/mdport.h Fri Jan 22 19:19:48 2016 -0500 @@ -187,6 +187,8 @@ 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);