summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '3rdParty/Boost/src/boost/asio/detail/task_io_service.hpp')
-rw-r--r--3rdParty/Boost/src/boost/asio/detail/task_io_service.hpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/3rdParty/Boost/src/boost/asio/detail/task_io_service.hpp b/3rdParty/Boost/src/boost/asio/detail/task_io_service.hpp
index c014855..08e7a57 100644
--- a/3rdParty/Boost/src/boost/asio/detail/task_io_service.hpp
+++ b/3rdParty/Boost/src/boost/asio/detail/task_io_service.hpp
@@ -19,9 +19,9 @@
#if !defined(BOOST_ASIO_HAS_IOCP)
-#include <boost/detail/atomic_count.hpp>
#include <boost/system/error_code.hpp>
#include <boost/asio/io_service.hpp>
+#include <boost/asio/detail/atomic_count.hpp>
#include <boost/asio/detail/mutex.hpp>
#include <boost/asio/detail/op_queue.hpp>
#include <boost/asio/detail/reactor_fwd.hpp>
@@ -67,6 +67,9 @@ public:
// Interrupt the event processing loop.
BOOST_ASIO_DECL void stop();
+ // Determine whether the io_service is stopped.
+ BOOST_ASIO_DECL bool stopped() const;
+
// Reset in preparation for a subsequent run invocation.
BOOST_ASIO_DECL void reset();
@@ -103,6 +106,10 @@ public:
// that work_started() was previously called for each operation.
BOOST_ASIO_DECL void post_deferred_completions(op_queue<operation>& ops);
+ // Process unfinished operations as part of a shutdown_service operation.
+ // Assumes that work_started() was previously called for the operations.
+ BOOST_ASIO_DECL void abandon_operations(op_queue<operation>& ops);
+
private:
// Structure containing information about an idle thread.
struct idle_thread_info;
@@ -132,7 +139,7 @@ private:
struct work_finished_on_block_exit;
// Mutex to protect access to internal data.
- mutex mutex_;
+ mutable mutex mutex_;
// The task to be run by this service.
reactor* task_;
@@ -147,7 +154,7 @@ private:
bool task_interrupted_;
// The count of unfinished work.
- boost::detail::atomic_count outstanding_work_;
+ atomic_count outstanding_work_;
// The queue of handlers that are ready to be delivered.
op_queue<operation> op_queue_;