summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2011-01-22 11:03:28 (GMT)
committerRemko Tronçon <git@el-tramo.be>2011-01-22 11:03:28 (GMT)
commit5cac0d0b588b1a024ba3e6934f655d315909b656 (patch)
tree4993bb3d92693709fe28327fe5751788c593c558 /3rdParty
parent6aa4bea624eddbbb26535a4ae1a0ed186ab1740b (diff)
downloadswift-5cac0d0b588b1a024ba3e6934f655d315909b656.zip
swift-5cac0d0b588b1a024ba3e6934f655d315909b656.tar.bz2
Another attempt at fixing the OS X hang on shutdown.
Diffstat (limited to '3rdParty')
-rw-r--r--3rdParty/Boost/SConscript5
-rw-r--r--3rdParty/Boost/src/boost/asio/detail/impl/kqueue_reactor.ipp4
2 files changed, 7 insertions, 2 deletions
diff --git a/3rdParty/Boost/SConscript b/3rdParty/Boost/SConscript
index c697618..1883f6f 100644
--- a/3rdParty/Boost/SConscript
+++ b/3rdParty/Boost/SConscript
@@ -16,10 +16,11 @@ elif env.get("BOOST_BUNDLED", False) :
################################################################################
cppdefines = ["BOOST_ALL_NO_LIB", "BOOST_SYSTEM_NO_DEPRECATED"]
+ # Workaround for hang on exit on OS X
+ #if env["PLATFORM"] == "darwin" :
+ # cppdefines += ["BOOST_ASIO_DISABLE_KQUEUE"]
if env["PLATFORM"] == "win32" :
cppflags = ["/I" + Dir("src").abspath]
- elif env["PLATFORM"] == "darwin" :
- cppdefines += ["BOOST_ASIO_DISABLE_KQUEUE"]
else :
cppflags = [("-isystem", Dir("src").abspath)]
diff --git a/3rdParty/Boost/src/boost/asio/detail/impl/kqueue_reactor.ipp b/3rdParty/Boost/src/boost/asio/detail/impl/kqueue_reactor.ipp
index 08209bd..b6b692d 100644
--- a/3rdParty/Boost/src/boost/asio/detail/impl/kqueue_reactor.ipp
+++ b/3rdParty/Boost/src/boost/asio/detail/impl/kqueue_reactor.ipp
@@ -55,6 +55,10 @@ kqueue_reactor::kqueue_reactor(boost::asio::io_service& io_service)
kqueue_reactor::~kqueue_reactor()
{
+ struct kevent event;
+ BOOST_ASIO_KQUEUE_EV_SET(&event, interrupter_.read_descriptor(),
+ EVFILT_READ, EV_DELETE, 0, 0, &interrupter_);
+ ::kevent(kqueue_fd_, &event, 1, 0, 0, 0);
close(kqueue_fd_);
}