The normal Twisted waker will simply wake up the main loop, which causes an iteration to run, which in turn causes ReactorBase.runUntilCurrent
to get invoked.
CFReactor
has a slightly different model of iteration, though: rather than have each iteration process the thread queue, then timed calls, then file descriptors, each callback is run as it is dispatched by the CFRunLoop observer which triggered it.
So this waker needs to not only unblock the loop, but also make sure the work gets done; so, it reschedules the invocation of runUntilCurrent to be immediate (0 seconds from now) even if there is no timed call work to do.
Method | __init__ |
Initialize. |
Method | do |
Wake up the loop and force runUntilCurrent to run immediately in the next timed iteration. |
Instance Variable | reactor |
Undocumented |
Inherited from _UnixWaker
:
Method | wake |
Write one byte to the pipe, and flush it. |
Inherited from _FDWaker
(via _UnixWaker
):
Method | connection |
Close both ends of my pipe. |
Class Variable | disconnected |
Undocumented |
Instance Variable | fileno |
No summary |
Instance Variable | i |
The file descriptor which should be monitored in order to be awoken by this waker. |
Instance Variable | o |
The file descriptor for the end of the pipe which can be written to wake up a reactor monitoring this waker. |
Inherited from Logger
(via _UnixWaker
, _FDWaker
):
Method | log |
Override this method to insert custom logging behavior. Its return value will be inserted in front of every line. It may be called more times than the number of output lines. |