kopia lustrzana https://github.com/peterhinch/micropython-samples
Update event.py
Increase CPython compatibility by using a boolean value for the state. Compatibility also achieveable by only changing is_set() to "return self.state==1" so it returns a boolean. self.state should never be accessed directly from the outside so could stay an integer.pull/12/head
rodzic
9a5fd628cc
commit
2ec2cee240
|
@ -4,16 +4,16 @@ import uasyncio
|
||||||
class Event(uasyncio.Primitive):
|
class Event(uasyncio.Primitive):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
super().__init__()
|
super().__init__()
|
||||||
self.state = 0 # 0=unset; 1=set
|
self.state = False
|
||||||
def set(self): # Event becomes set, schedule any tasks waiting on it
|
def set(self): # Event becomes set, schedule any tasks waiting on it
|
||||||
self.run_all()
|
self.run_all()
|
||||||
self.state = 1
|
self.state = True
|
||||||
def clear(self):
|
def clear(self):
|
||||||
self.state = 0
|
self.state = False
|
||||||
def is_set(self):
|
def is_set(self):
|
||||||
return self.state # CPython compatibility
|
return self.state # CPython compatibility
|
||||||
async def wait(self):
|
async def wait(self):
|
||||||
if self.state == 0:
|
if not self.state:
|
||||||
# Event not set, put the calling task on the event's waiting queue
|
# Event not set, put the calling task on the event's waiting queue
|
||||||
self.save_current()
|
self.save_current()
|
||||||
yield
|
yield
|
||||||
|
|
Ładowanie…
Reference in New Issue