Skip to content

Commit 727389c

Browse files
authored
Merge pull request apache#716 from datastax/python-673
PYTHON-673: Ensure Evenlet greenthreads exit gracefully
2 parents 13f7925 + 90de496 commit 727389c

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

cassandra/io/eventletreactor.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import eventlet
2020
from eventlet.green import socket
2121
from eventlet.queue import Queue
22+
from greenlet import GreenletExit
2223
import logging
2324
from threading import Event
2425
import time
@@ -80,7 +81,6 @@ def service_timeouts(cls):
8081

8182
def __init__(self, *args, **kwargs):
8283
Connection.__init__(self, *args, **kwargs)
83-
8484
self._write_queue = Queue()
8585

8686
self._connect_socket()
@@ -126,6 +126,8 @@ def handle_write(self):
126126
log.debug("Exception during socket send for %s: %s", self, err)
127127
self.defunct(err)
128128
return # Leave the write loop
129+
except GreenletExit: # graceful greenthread exit
130+
return
129131

130132
def handle_read(self):
131133
while True:
@@ -137,6 +139,8 @@ def handle_read(self):
137139
self, err)
138140
self.defunct(err)
139141
return # leave the read loop
142+
except GreenletExit: # graceful greenthread exit
143+
return
140144

141145
if buf and self._iobuf.tell():
142146
self.process_io_buffer()

0 commit comments

Comments
 (0)