question about signal handling in tst_sig()
Hi there,
Looks like in tst_sig(), if _SC_SIGRT_MIN defined, all realtime signals won't be set an handler:
125 #ifdef _SC_SIGRT_MIN
126 if (sig >= sigrtmin && sig <= sigrtmax)
127 continue;
128 #endif
but, if it wasn't defined, then all realtime signals will be set an handler:
134 #if !defined(_SC_SIGRT_MIN) && defined(__SIGRTMIN) && defined(__SIGRTMAX)
135 /* Ignore all real-time signals */
136 case __SIGRTMIN:
137 case __SIGRTMIN + 1:
...
is that correct, or I missed something here?
Thanks in advance!
Hi!
Quoted 11 lines
Looks like in
tst_sig(), if_SC_SIGRT_MINdefined, all realtime signals won't be set an handler:125 #ifdef
_SC_SIGRT_MIN
126 if (sig >= sigrtmin && sig <= sigrtmax)
127 continue;
128 #endifbut, if it wasn't defined, then all realtime signals will be set an handler:
Quoted 8 lines
134 #if !defined(_SC_SIGRT_MIN) &&
defined(__SIGRTMIN)&&defined(__SIGRTMAX)
135 /* Ignore all real-time signals */
136 case__SIGRTMIN:
137 case__SIGRTMIN+ 1:
...is that correct, or I missed something here?
The loop goes over signal numbers from 1 to NSIG (which is defined in system headers). Supposedly when _SC_SIGRT_MIN is not defined the system does not support realtime signals and the NSIG has value of the highest allocated (non-realtime) signal number.
Signature · 2 lines
Cyril Hrubis [email protected]
Hi!
Quoted 11 lines
Quoted 11 lines
Looks like in
tst_sig(), if_SC_SIGRT_MINdefined, all realtime signals won't be set an handler:125 #ifdef
_SC_SIGRT_MIN
126 if (sig >= sigrtmin && sig <= sigrtmax)
127 continue;
128 #endifbut, if it wasn't defined, then all realtime signals will be set an handler:
Quoted 6 lines
Quoted 6 lines
134 #if !defined(_SC_SIGRT_MIN) &&
defined(__SIGRTMIN)&&defined(__SIGRTMAX)
135 /* Ignore all real-time signals */
136 case__SIGRTMIN:
137 case__SIGRTMIN+ 1:
...
And also there is a break down after the long list of cases.
So it looks like:
* if _SC_SIGRT_MIN is defined we have a POSIX compilant system and we skip realtime signals in the if at line 125.
* Otherwise if system is not POSIX compilant but __SIGRTMIN and __SIGRTMAX is defined, we skip them in the hack in the switch()
this is possibly workaround for old glibc without _SC_SIGRT_MIN support
Quoted 13 lines
Quoted 1 line
is that correct, or I missed something here?
The loop goes over signal numbers from 1 to NSIG (which is defined in system headers). Supposedly when
_SC_SIGRT_MINis not defined the system does not support realtime signals and the NSIG has value of the highest allocated (non-realtime) signal number.Signature · 5 lines
Cyril Hrubis [email protected] -- Mailing list info: http://lists.linux.it/listinfo/ltp
Signature · 2 lines
Cyril Hrubis [email protected]
Quoted 22 lines · Cyril Hrubis
Hi!
Quoted 11 lines
Quoted 11 lines
Looks like in
tst_sig(), if_SC_SIGRT_MINdefined, all realtime signals won't be set an handler:125 #ifdef
_SC_SIGRT_MIN
126 if (sig >= sigrtmin && sig <= sigrtmax)
127 continue;
128 #endifbut, if it wasn't defined, then all realtime signals will be set an handler:
Quoted 6 lines
Quoted 6 lines
134 #if !defined(_SC_SIGRT_MIN) &&
defined(__SIGRTMIN)&&defined(__SIGRTMAX)
135 /* Ignore all real-time signals */
136 case__SIGRTMIN:
137 case__SIGRTMIN+ 1:
...And also there is a break down after the long list of cases.
Quoted 8 lines
So it looks like:
* if
_SC_SIGRT_MINis defined we have a POSIX compilant system and we skip realtime signals in the if at line 125.* Otherwise if system is not POSIX compilant but
__SIGRTMINand__SIGRTMAXis defined, we skip them in the hack in theswitch()
Thanks so much, I just noticed that there is a "break;" at line 206 ...