diff options
author | Ryan <ry@tinyclouds.org> | 2009-08-10 12:14:41 +0200 |
---|---|---|
committer | Ryan <ry@tinyclouds.org> | 2009-08-10 12:32:54 +0200 |
commit | 738d20f6f02ac274abae0e178517c589e02533a4 (patch) | |
tree | deaff4f42c58026c982e71edf90df0e00f25a5db /deps | |
parent | 0638a3a3ab680b99c36cc09904d10bbfd76c65ba (diff) | |
download | node-738d20f6f02ac274abae0e178517c589e02533a4.tar.gz |
(evcom) Add fix for pausing against big buffers.
discussion:
http://groups.google.com/group/nodejs/browse_thread/thread/11a920da4d0ed21d
Diffstat (limited to 'deps')
-rw-r--r-- | deps/evcom/evcom.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/deps/evcom/evcom.c b/deps/evcom/evcom.c index f3a69cf14..5e37822cc 100644 --- a/deps/evcom/evcom.c +++ b/deps/evcom/evcom.c @@ -853,9 +853,9 @@ on_io_event(EV_P_ ev_io *watcher, int revents) while (have_read_event || have_write_event) { /* RECV LOOP - TRY TO CLEAR THE BUFFER */ - if (stream->read_action == NULL) { + if (stream->read_action == NULL || !ev_is_active(&stream->read_watcher)) { have_read_event = FALSE; - } else { + } else { r = stream->read_action(stream); if (r == AGAIN) { @@ -866,7 +866,7 @@ on_io_event(EV_P_ ev_io *watcher, int revents) } /* SEND LOOP - TRY TO CLEAR THE BUFFER */ - if (stream->write_action == NULL) { + if (stream->write_action == NULL || !ev_is_active(&stream->write_watcher)) { have_write_event = FALSE; } else { r = stream->write_action(stream); |