summaryrefslogtreecommitdiffstats
path: root/ext
diff options
context:
space:
mode:
authorJINMEI Tatuya <jinmei@isc.org>2012-02-27 00:52:19 +0100
committerJINMEI Tatuya <jinmei@isc.org>2012-02-27 00:52:19 +0100
commite4b2c2633ebb3859286e9a4c19e97e17bcac41b3 (patch)
tree0972a3cd600c55e37b49e2fa2a1f049504c2f483 /ext
parent[master] fixed a build error on git.bind10 by using exactly the same type in ?: (diff)
downloadkea-e4b2c2633ebb3859286e9a4c19e97e17bcac41b3.tar.xz
kea-e4b2c2633ebb3859286e9a4c19e97e17bcac41b3.zip
[asiofix] imported a bug fix in ASIO 1.5.1:
https://sourceforge.net/projects/asio/files/asio/1.5.1%20%28Development%29/ * Fixed a bug on kqueue-based platforms, where reactor read operations that return false from their perform() function are not correctly re-registered with kqueue. This is necessary for multiple processes sharing the same socket to both accept queries.
Diffstat (limited to 'ext')
-rw-r--r--ext/asio/asio/detail/impl/kqueue_reactor.ipp2
1 files changed, 2 insertions, 0 deletions
diff --git a/ext/asio/asio/detail/impl/kqueue_reactor.ipp b/ext/asio/asio/detail/impl/kqueue_reactor.ipp
index 8db77cb3e5..00ebfeb674 100644
--- a/ext/asio/asio/detail/impl/kqueue_reactor.ipp
+++ b/ext/asio/asio/detail/impl/kqueue_reactor.ipp
@@ -301,12 +301,14 @@ void kqueue_reactor::run(bool block, op_queue<operation>& ops)
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;
}