@@ -44,6 +44,12 @@ def wait(self, delay):
44
44
log .debug ("Sleeping for: %s" , delay )
45
45
time .sleep (delay )
46
46
47
+ # Workaround bug for in uPy - default args for lambda's are not supported
48
+ def lambda_helper (self , cb ):
49
+ def lmb (cb = cb ):
50
+ self .call_soon (cb )
51
+ return lmb
52
+
47
53
def run_forever (self ):
48
54
while True :
49
55
if self .q :
@@ -78,10 +84,12 @@ def run_forever(self):
78
84
elif isinstance (ret , IORead ):
79
85
# self.add_reader(ret.obj.fileno(), lambda self, c, f: self.call_soon(c, f), self, cb, ret.obj)
80
86
# self.add_reader(ret.obj.fileno(), lambda c, f: self.call_soon(c, f), cb, ret.obj)
81
- self .add_reader (arg .fileno (), lambda cb , f : self .call_soon (cb , f ), cb , arg )
87
+ # self.add_reader(arg.fileno(), lambda cb: self.call_soon(cb), cb)
88
+ self .add_reader (arg .fileno (), self .lambda_helper (cb ))
82
89
continue
83
90
elif isinstance (ret , IOWrite ):
84
- self .add_writer (arg .fileno (), lambda cb , f : self .call_soon (cb , f ), cb , arg )
91
+ # self.add_writer(arg.fileno(), lambda cb: self.call_soon(cb), cb)
92
+ self .add_writer (arg .fileno (), self .lambda_helper (cb ))
85
93
continue
86
94
elif isinstance (ret , IOReadDone ):
87
95
self .remove_reader (arg .fileno ())
0 commit comments