Kaydet (Commit) 6f25618b authored tarafından Guido van Rossum's avatar Guido van Rossum

Add PyOS_getsig() and PyOS_setsig() -- wrappers around signal() or

sigaction() (if HAVE_SIGACTION is defined).
üst c7247ce2
......@@ -1214,3 +1214,37 @@ PyOS_CheckStack(void)
/* Alternate implementations can be added here... */
#endif /* USE_STACKCHECK */
/* Wrappers around sigaction() or signal(). */
PyOS_sighandler_t
PyOS_getsig(int sig)
{
#ifdef HAVE_SIGACTION
struct sigaction context;
sigaction(sig, NULL, &context);
return context.sa_handler;
#else
PyOS_sighandler_t handler;
handler = signal(sig, SIG_IGN);
signal(sig, handler);
return handler;
#endif
}
PyOS_sighandler_t
PyOS_setsig(int sig, PyOS_sighandler_t handler)
{
#ifdef HAVE_SIGACTION
struct sigaction context;
PyOS_sighandler_t oldhandler;
sigaction(sig, NULL, &context);
oldhandler = context.sa_handler;
context.sa_handler = handler;
sigaction(sig, &context, NULL);
return oldhandler;
#else
return signal(sig, handler);
#endif
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment