]> granicus.if.org Git - libevent/commitdiff
Revert "Avoid potential SSL read spinlocks"
authorNick Mathewson <nickm@torproject.org>
Tue, 15 Nov 2011 23:34:24 +0000 (18:34 -0500)
committerNick Mathewson <nickm@torproject.org>
Tue, 15 Nov 2011 23:34:24 +0000 (18:34 -0500)
This reverts commit fc52dbac87f4937f8306759506d6a2ad15ca244c.

bufferevent_openssl.c

index 3843b314e4f713c2a8555e4049cf5bb1a1577a2b..86a8619b0c2196d5c5743026ed0ccc846b549056 100644 (file)
@@ -722,13 +722,15 @@ consider_reading(struct bufferevent_openssl *bev_ssl)
        }
        if (bev_ssl->write_blocked_on_read)
                return;
-       if ((bev_ssl->bev.bev.enabled & EV_READ) &&
+       while ((bev_ssl->bev.bev.enabled & EV_READ) &&
            (! bev_ssl->bev.read_suspended) &&
            (! wm->high || evbuffer_get_length(input) < wm->high)) {
                int n_to_read =
                    wm->high ? wm->high - evbuffer_get_length(input)
                             : READ_DEFAULT;
                r = do_read(bev_ssl, n_to_read);
+               if (r <= 0)
+                       break;
        }
 
        if (!bev_ssl->underlying) {