Skip to content

Commit 17a69b0

Browse files
shawkinsmezmoStephen Hawkins
andauthored
fix: Make flush thread a daemon thread to prevent shutdown hang (#102)
Co-authored-by: Stephen Hawkins <stephen.hawkins@Stephen-Hawkins.local>
1 parent 658f6c5 commit 17a69b0

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

logdna/logdna.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ def __init__(self, key, options={}):
7878

7979
# Start the flusher
8080
self.flusher_stopped = threading.Event()
81-
self.flusher = threading.Timer(
82-
self.flush_interval_secs, self.flush_timer_worker)
81+
self.flusher = threading.Thread(
82+
target=self.flush_timer_worker, daemon=True)
8383
self.flusher.start()
8484

8585
def flush_timer_worker(self):
@@ -93,7 +93,7 @@ def flush_timer_worker(self):
9393
def close_flusher(self):
9494
if self.flusher:
9595
self.flusher_stopped.set()
96-
self.flusher.cancel()
96+
self.flusher.join()
9797
self.flusher = None
9898

9999
def buffer_log(self, message):

tests/test_logger.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,11 @@ def get_sample_record(id):
320320
self.assertEqual(len(received), num_logs)
321321
self.assertEquals(set(received), set(range(num_logs)))
322322

323+
def test_when_handlerShutDown_then_handlerDoesNotHang(self):
324+
handler = LogDNAHandler(LOGDNA_API_KEY, sample_options)
325+
self.assertIsNotNone(handler)
326+
# Do nothing. This test should pass by virtue of not hanging.
327+
323328

324329
if __name__ == '__main__':
325330
unittest.main()

0 commit comments

Comments
 (0)