File tree Expand file tree Collapse file tree 2 files changed +15
-8
lines changed Expand file tree Collapse file tree 2 files changed +15
-8
lines changed Original file line number Diff line number Diff line change @@ -1164,22 +1164,27 @@ def test_race_between_set_target_and_flush(self):
1164
1164
class MockRaceConditionHandler :
1165
1165
def __init__ (self , mem_hdlr ):
1166
1166
self .mem_hdlr = mem_hdlr
1167
+ self .threads = []
1167
1168
1168
1169
def removeTarget (self ):
1169
1170
self .mem_hdlr .setTarget (None )
1170
1171
1171
1172
def handle (self , msg ):
1172
- t = threading .Thread (target = self .removeTarget )
1173
- t . daemon = True
1174
- t .start ()
1173
+ thread = threading .Thread (target = self .removeTarget )
1174
+ self . threads . append ( thread )
1175
+ thread .start ()
1175
1176
1176
1177
target = MockRaceConditionHandler (self .mem_hdlr )
1177
- self .mem_hdlr .setTarget (target )
1178
+ try :
1179
+ self .mem_hdlr .setTarget (target )
1178
1180
1179
- for _ in range (10 ):
1180
- time .sleep (0.005 )
1181
- self .mem_logger .info ("not flushed" )
1182
- self .mem_logger .warning ("flushed" )
1181
+ for _ in range (10 ):
1182
+ time .sleep (0.005 )
1183
+ self .mem_logger .info ("not flushed" )
1184
+ self .mem_logger .warning ("flushed" )
1185
+ finally :
1186
+ for thread in target .threads :
1187
+ threading_helper .join_thread (thread )
1183
1188
1184
1189
1185
1190
class ExceptionFormatter (logging .Formatter ):
Original file line number Diff line number Diff line change
1
+ Fix test_logging.test_race_between_set_target_and_flush(): the test now
2
+ waits until all threads complete to avoid leaking running threads.
You can’t perform that action at this time.
0 commit comments