diff options
author | Christophe-Marie Duquesne <chmd@chmd.fr> | 2015-02-17 00:50:51 +0100 |
---|---|---|
committer | Christophe-Marie Duquesne <chmd@chmd.fr> | 2015-03-02 23:49:08 +0100 |
commit | 04979248afa82af77d02f76fbf12456bb83ae334 (patch) | |
tree | 1c80ea593425b16cf83f327707698a35a9808a9c | |
parent | 9ad0be662d388b47aadf04d712f5744add6456e3 (diff) | |
download | kafka-python-04979248afa82af77d02f76fbf12456bb83ae334.tar.gz |
Stopping daemonized threads when references to these threads are lost
-rw-r--r-- | kafka/producer/base.py | 6 | ||||
-rw-r--r-- | kafka/util.py | 3 |
2 files changed, 9 insertions, 0 deletions
diff --git a/kafka/producer/base.py b/kafka/producer/base.py index 5b41bc9..695f195 100644 --- a/kafka/producer/base.py +++ b/kafka/producer/base.py @@ -127,6 +127,7 @@ class Producer(object): self.async = async self.req_acks = req_acks self.ack_timeout = ack_timeout + self.stopped = False if codec is None: codec = CODEC_NONE @@ -212,3 +213,8 @@ class Producer(object): if self.proc.is_alive(): self.proc.terminate() + self.stopped = True + + def __del__(self): + if not self.stopped: + self.stop() diff --git a/kafka/util.py b/kafka/util.py index 14d2b2c..78c3607 100644 --- a/kafka/util.py +++ b/kafka/util.py @@ -151,3 +151,6 @@ class ReentrantTimer(object): # noinspection PyAttributeOutsideInit self.timer = None self.fn = None + + def __del__(self): + self.stop() |