Ticket #6005: epoll_reactor.hpp.patch_1.40.0

File epoll_reactor.hpp.patch_1.40.0, 855 bytes (added by yafei.zhang@…, 11 years ago)

only for boost 1.40.0

Line 
1--- epoll_reactor.hpp 2011-10-11 10:28:00.000000000 +0800
2+++ epoll_reactor.hpp.new 2011-10-11 10:27:41.000000000 +0800
3@@ -65,7 +65,7 @@
4 epoll_reactor(boost::asio::io_service& io_service)
5 : boost::asio::detail::service_base<epoll_reactor<Own_Thread> >(io_service),
6 mutex_(),
7- epoll_fd_(do_epoll_create()),
8+ epoll_fd_(-1),
9 wait_in_progress_(false),
10 interrupter_(),
11 read_op_queue_(),
12@@ -77,6 +77,8 @@
13 shutdown_(false),
14 need_epoll_wait_(true)
15 {
16+ epoll_fd_ = do_epoll_create();
17+
18 // Start the reactor's internal thread only if needed.
19 if (Own_Thread)
20 {
21@@ -96,7 +98,9 @@
22 ~epoll_reactor()
23 {
24 shutdown_service();
25- close(epoll_fd_);
26+
27+ if (epoll_fd_ != -1)
28+ close(epoll_fd_);
29 }
30
31 // Destroy all user-defined handler objects owned by the service.