'Callback fired when the associated event is set.  Run the C{action}
callback on the wrapped descriptor in the main reactor thread and raise
or return whatever it raises or returns to cause this event handler to
be removed from C{self._reactor} if appropriate.'

def _execute(self):

    return blockingCallFromThread(self._reactor, (lambda : getattr(self._fd, self._action)()))
