diff options
author | Dana Powers <dana.powers@gmail.com> | 2016-06-26 15:07:10 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-06-26 15:07:10 -0700 |
commit | 229ac5d1c989d14bae3591c8b1fb1a93dc5e4b1c (patch) | |
tree | 6db1d86207d2e43264a2d02a5dd29453f169e04f | |
parent | b2bc1f0ed7b339b111e02afec1d8b7aa1d8495da (diff) | |
download | kafka-python-229ac5d1c989d14bae3591c8b1fb1a93dc5e4b1c.tar.gz |
Wakeup socket optimizations (#740)
-rw-r--r-- | kafka/client_async.py | 2 | ||||
-rw-r--r-- | kafka/producer/sender.py | 7 |
2 files changed, 7 insertions, 2 deletions
diff --git a/kafka/client_async.py b/kafka/client_async.py index 25952be..63b63d1 100644 --- a/kafka/client_async.py +++ b/kafka/client_async.py @@ -726,7 +726,7 @@ class KafkaClient(object): def _clear_wake_fd(self): while True: try: - self._wake_r.recv(1) + self._wake_r.recv(1024) except: break diff --git a/kafka/producer/sender.py b/kafka/producer/sender.py index f0f77ee..958e165 100644 --- a/kafka/producer/sender.py +++ b/kafka/producer/sender.py @@ -163,7 +163,12 @@ class Sender(threading.Thread): self.initiate_close() def add_topic(self, topic): - if topic not in self._topics_to_add: + # This is generally called from a separate thread + # so this needs to be a thread-safe operation + # we assume that checking set membership across threads + # is ok where self._client._topics should never + # remove topics for a producer instance, only add them. + if topic not in self._client._topics: self._topics_to_add.add(topic) self.wakeup() |