- Timestamp:
- May 23, 2011, 8:57:46 PM (14 years ago)
- Branches:
- master, release-1.10, release-1.8, release-1.9
- Children:
- 736835d
- Parents:
- ba12b44
- git-author:
- David Benjamin <davidben@mit.edu> (03/03/11 09:50:32)
- git-committer:
- David Benjamin <davidben@mit.edu> (05/23/11 20:57:46)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
signal.c
r08e9842 r1d21d9f 8 8 static sigset_t signal_set; 9 9 10 static void (*signal_cb)( int, void*);10 static void (*signal_cb)(const siginfo_t*, void*); 11 11 static void *signal_cbdata; 12 12 … … 19 19 * This function /must/ be called before any other threads are 20 20 * created. (Otherwise the signals will not get blocked correctly.) */ 21 void owl_signal_init(const sigset_t *set, void (*callback)( int, void*), void *data) {21 void owl_signal_init(const sigset_t *set, void (*callback)(const siginfo_t*, void*), void *data) { 22 22 int ret; 23 23 … … 41 41 static void *signal_thread_func(void *data) { 42 42 while (1) { 43 int signal;43 siginfo_t siginfo; 44 44 int ret; 45 45 46 ret = sigwait (&signal_set, &signal);47 /* TODO: Print an error? man page claims it never errors.*/48 if (ret !=0)46 ret = sigwaitinfo(&signal_set, &siginfo); 47 /* TODO: Print an error? */ 48 if (ret < 0) 49 49 continue; 50 50 51 signal_cb( signal, signal_cbdata);51 signal_cb(&siginfo, signal_cbdata); 52 52 /* Die on SIGTERM. */ 53 if (sig nal== SIGTERM)53 if (siginfo.si_signo == SIGTERM) 54 54 break; 55 55 }
Note: See TracChangeset
for help on using the changeset viewer.