File tree Expand file tree Collapse file tree 2 files changed +10
-20
lines changed Expand file tree Collapse file tree 2 files changed +10
-20
lines changed Original file line number Diff line number Diff line change 11
11
import sys
12
12
13
13
14
- class Signal : # <1>
15
- go = True
16
-
17
-
18
- def spin (msg , signal ): # <2>
14
+ def spin (msg , done ): # <2>
19
15
write , flush = sys .stdout .write , sys .stdout .flush
20
16
for char in itertools .cycle ('|/-\\ ' ): # <3>
21
17
status = char + ' ' + msg
22
18
write (status )
23
19
flush ()
24
20
write ('\x08 ' * len (status )) # <4>
25
- time .sleep (.1 )
26
- if not signal .go : # <5>
21
+ if done .wait (.1 ): # <5>
27
22
break
28
23
write (' ' * len (status ) + '\x08 ' * len (status )) # <6>
29
24
@@ -35,13 +30,13 @@ def slow_function(): # <7>
35
30
36
31
37
32
def supervisor (): # <9>
38
- signal = Signal ()
33
+ done = threading . Event ()
39
34
spinner = threading .Thread (target = spin ,
40
- args = ('thinking!' , signal ))
35
+ args = ('thinking!' , done ))
41
36
print ('spinner object:' , spinner ) # <10>
42
37
spinner .start () # <11>
43
38
result = slow_function () # <12>
44
- signal . go = False # <13>
39
+ done . set () # <13>
45
40
spinner .join () # <14>
46
41
return result
47
42
Original file line number Diff line number Diff line change 11
11
import sys
12
12
13
13
14
- class Signal : # <1>
15
- go = True
16
-
17
-
18
- def spin (msg , signal ): # <2>
14
+ def spin (msg , done ): # <2>
19
15
write , flush = sys .stdout .write , sys .stdout .flush
20
16
for char in itertools .cycle ('|/-\\ ' ): # <3>
21
17
status = char + ' ' + msg
22
18
write (status )
23
19
flush ()
24
20
write ('\x08 ' * len (status )) # <4>
25
- time .sleep (.1 )
26
- if not signal .go : # <5>
21
+ if done .wait (.1 ): # <5>
27
22
break
28
23
write (' ' * len (status ) + '\x08 ' * len (status )) # <6>
29
24
@@ -35,13 +30,13 @@ def slow_function(): # <7>
35
30
36
31
37
32
def supervisor (): # <9>
38
- signal = Signal ()
33
+ done = threading . Event ()
39
34
spinner = threading .Thread (target = spin ,
40
- args = ('thinking!' , signal ))
35
+ args = ('thinking!' , done ))
41
36
print ('spinner object:' , spinner ) # <10>
42
37
spinner .start () # <11>
43
38
result = slow_function () # <12>
44
- signal . go = False # <13>
39
+ done . set () # <13>
45
40
spinner .join () # <14>
46
41
return result
47
42
You can’t perform that action at this time.
0 commit comments