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.
|
---|