diff options
| author | raylu <raylu@mixpanel.com> | 2013-01-11 17:14:13 +0400 |
|---|---|---|
| committer | Sergey Shepelev <temotor@gmail.com> | 2013-01-12 03:55:18 +0400 |
| commit | 675a2df36b91ec6b8b54b527786d2af312f6e74e (patch) | |
| tree | 4edd5be264066729728d25e1b7e0ccad97b32f42 | |
| parent | c8418a10e4c750e7df6bc036d872f1395d21cc24 (diff) | |
| download | eventlet-675a2df36b91ec6b8b54b527786d2af312f6e74e.tar.gz | |
ssl: socket.sendall(): trampoline if sent 0 bytes; fixes CPU burn
https://bitbucket.org/which_linden/eventlet/issue/134/greenssl-performance-issues
| -rw-r--r-- | eventlet/green/ssl.py | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/eventlet/green/ssl.py b/eventlet/green/ssl.py index 88c47a3..6848c1d 100644 --- a/eventlet/green/ssl.py +++ b/eventlet/green/ssl.py @@ -130,6 +130,8 @@ class GreenSSLSocket(__ssl.SSLSocket): while (count < amount): v = self.send(data[count:]) count += v + if v == 0: + trampoline(self, write=True, timeout_exc=timeout_exc('timed out')) return amount else: while True: |
