File tree 1 file changed +41
-0
lines changed 1 file changed +41
-0
lines changed Original file line number Diff line number Diff line change
1
+ import logging
2
+ import threading
3
+ import time
4
+
5
+ logging .basicConfig (level = logging .DEBUG ,
6
+ format = '(%(threadName)-10s) %(message)s' ,
7
+ )
8
+
9
+ def wait_for_event (e ):
10
+ """Wait for the event to be set before doing anything"""
11
+ logging .debug ('wait_for_event starting' )
12
+ event_is_set = e .wait ()
13
+ logging .debug ('event set: %s' , event_is_set )
14
+
15
+ def wait_for_event_timeout (e , t ):
16
+ """Wait t seconds and then timeout"""
17
+ while not e .isSet ():
18
+ logging .debug ('wait_for_event_timeout starting' )
19
+ event_is_set = e .wait (t )
20
+ logging .debug ('event set: %s' , event_is_set )
21
+ if event_is_set :
22
+ logging .debug ('processing event' )
23
+ else :
24
+ logging .debug ('doing other work' )
25
+
26
+
27
+ e = threading .Event ()
28
+ t1 = threading .Thread (name = 'block' ,
29
+ target = wait_for_event ,
30
+ args = (e ,))
31
+ t1 .start ()
32
+
33
+ t2 = threading .Thread (name = 'non-block' ,
34
+ target = wait_for_event_timeout ,
35
+ args = (e , 2 ))
36
+ t2 .start ()
37
+
38
+ logging .debug ('Waiting before calling Event.set()' )
39
+ time .sleep (3 )
40
+ e .set ()
41
+ logging .debug ('Event is set' )
You can’t perform that action at this time.
0 commit comments