summaryrefslogtreecommitdiff
path: root/deps
diff options
context:
space:
mode:
authorRyan <ry@tinyclouds.org>2009-08-10 12:14:41 +0200
committerRyan <ry@tinyclouds.org>2009-08-10 12:32:54 +0200
commit738d20f6f02ac274abae0e178517c589e02533a4 (patch)
treedeaff4f42c58026c982e71edf90df0e00f25a5db /deps
parent0638a3a3ab680b99c36cc09904d10bbfd76c65ba (diff)
downloadnode-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.c6
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);