import signal
cdef class SelSignal:
+ """
+ SelSignal(SIG, [signalledproc = None])
+
+ Collect signals from the event loop.
+ """
cdef sig s
cdef int _activep
cdef readonly int signal
if me._activep:
sig_remove(&me.s)
property activep:
+ """SS.activep -> BOOL: is the handler still active?"""
def __get__(me):
return _tobool(me._activep)
property signalledproc:
+ """SS.signalledproc -> FUNC: call FUNC() when the signal is received"""
def __get__(me):
return me._signalled
def __set__(me, proc):
def __del__(me):
me._signalled = None
def enable(me):
+ """SS.enable(): enable the handler"""
if me._activep:
raise ValueError, 'already enabled'
sig_add(&me.s, me.signal, _sigfunc, <void *>me)
me._enabled()
return me
def disable(me):
+ """SS.disable(): disable the handler"""
if not me._activep:
raise ValueError, 'already disabled'
sig_remove(&me.s)
me._activep = 0
me.disabled()
def enabled(me):
+ """SS.enabled(): called when handler is enabled"""
pass
def disabled(me):
+ """SS.disabled(): called when handler is disabled"""
pass
def signalled(me):
+ """SS.signalled(): called when the signal is received"""
return _maybecall(me._signalled, ())
cdef void _sigfunc(int sig, void *arg):