mirror of
https://github.com/KevinMidboe/python-gpiozero.git
synced 2025-10-29 09:40:36 +00:00
40 lines
855 B
Python
40 lines
855 B
Python
from __future__ import (
|
|
unicode_literals,
|
|
print_function,
|
|
absolute_import,
|
|
division,
|
|
)
|
|
str = type('')
|
|
|
|
from threading import Thread, Event
|
|
|
|
|
|
_THREADS = set()
|
|
def _threads_shutdown():
|
|
while _THREADS:
|
|
for t in _THREADS.copy():
|
|
t.stop()
|
|
|
|
|
|
class GPIOThread(Thread):
|
|
def __init__(self, group=None, target=None, name=None, args=(), kwargs=None):
|
|
if kwargs is None:
|
|
kwargs = {}
|
|
self.stopping = Event()
|
|
super(GPIOThread, self).__init__(group, target, name, args, kwargs)
|
|
self.daemon = True
|
|
|
|
def start(self):
|
|
self.stopping.clear()
|
|
_THREADS.add(self)
|
|
super(GPIOThread, self).start()
|
|
|
|
def stop(self):
|
|
self.stopping.set()
|
|
self.join()
|
|
|
|
def join(self):
|
|
super(GPIOThread, self).join()
|
|
_THREADS.discard(self)
|
|
|