Fix bug on kqueue-based platforms, where reactor read operations that return false from their perform() function are not correctly re-registered with kqueue.
diff --git a/asio/include/asio/detail/impl/kqueue_reactor.ipp b/asio/include/asio/detail/impl/kqueue_reactor.ipp index 8db77cb..00ebfeb 100644 --- a/asio/include/asio/detail/impl/kqueue_reactor.ipp +++ b/asio/include/asio/detail/impl/kqueue_reactor.ipp
@@ -301,12 +301,14 @@ EV_ADD | EV_ONESHOT, EV_OOBAND, 0, descriptor_data); else continue; + break; case EVFILT_WRITE: if (!descriptor_data->op_queue_[write_op].empty()) ASIO_KQUEUE_EV_SET(&event, descriptor, EVFILT_WRITE, EV_ADD | EV_ONESHOT, 0, 0, descriptor_data); else continue; + break; default: break; }