45 lines
1.6 KiB
Python
45 lines
1.6 KiB
Python
# uncompyle6 version 3.9.2
|
|
# Python bytecode version base 3.7.0 (3394)
|
|
# Decompiled from: Python 3.8.19 (default, Mar 20 2024, 15:27:52)
|
|
# [Clang 14.0.6 ]
|
|
# Embedded file name: /var/user/app/device_supervisorbak/device_supervisor/lib/libevent.py
|
|
# Compiled at: 2024-04-18 03:12:55
|
|
# Size of source mod 2**32: 1321 bytes
|
|
from _libevent import *
|
|
import weakref
|
|
|
|
class Timer(Event):
|
|
__doc__ = "Simplified class for timers."
|
|
__slots__ = "_callback"
|
|
|
|
def __init__(self, base, callback, userdata=None):
|
|
if not callable(callback):
|
|
raise TypeError("the callback must be callable")
|
|
|
|
def _fire(evt, fd, what, userdata, selfref=weakref.ref(self)):
|
|
"""Special internal class to prevent circular references."""
|
|
self = selfref()
|
|
if self is not None:
|
|
self._callback(self, userdata)
|
|
|
|
super(Timer, self).__init__(base, -1, 0, _fire, userdata)
|
|
self._callback = callback
|
|
|
|
|
|
class Signal(Event):
|
|
__doc__ = "Simplified class for signals."
|
|
__slots__ = "_callback"
|
|
|
|
def __init__(self, base, signum, callback, userdata=None):
|
|
if not callable(callback):
|
|
raise TypeError("the callback must be callable")
|
|
|
|
def _fire(evt, fd, what, userdata, selfref=weakref.ref(self)):
|
|
"""Special internal class to prevent circular references."""
|
|
self = selfref()
|
|
if self is not None:
|
|
self._callback(self, fd, userdata)
|
|
|
|
super(Signal, self).__init__(base, signum, EV_SIGNAL | EV_PERSIST, _fire, userdata)
|
|
self._callback = callback
|