def stop(self):
     if self._flags & 2:
         libev.ev_ref(self.loop._ptr)
         self._flags &= ~2
     self._watcher_stop(self.loop._ptr, pointer(self._watcher_struct))
     self._callback = None
     self.args = None
 def set_ref(self, value):
     if value:
         if not self._flags & 4:
             return  # ref is already True
         if self._flags & 2:  # ev_unref was called, undo
             libev.ev_ref(self.loop._ptr)
         self._flags &= ~6  # do not want unref, no outstanding unref
     else:
         if self._flags & 4:
             return  # ref is already False
         self._flags |= 4
         if not self._flags & 2 and libev.ev_is_active(pointer(self._watcher_struct)):
             libev.ev_unref(self.loop._ptr)
             self._flags |= 2
 def ref(self):
     libev.ev_ref(self._ptr)
 def _stop_signal_checker(self):
     if libev.ev_is_active(pointer(self._signal_checker)):
         libev.ev_ref(self._ptr)
         libev.ev_prepare_stop(self._ptr, pointer(self._signal_checker))