mirror of
				https://github.com/KevinMidboe/python-gpiozero.git
				synced 2025-10-29 17:50:37 +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)
 | 
						|
 |