|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r78739 - in trunk: boost/asio/detail/impl libs/asio/doc
From: chris_at_[hidden]
Date: 2012-05-28 18:03:37
Author: chris_kohlhoff
Date: 2012-05-28 18:03:36 EDT (Mon, 28 May 2012)
New Revision: 78739
URL: http://svn.boost.org/trac/boost/changeset/78739
Log:
Use the thread's private_op_queue for handlers returned by the reactor task.
This fixes a problem where signal_set handlers are not being called when the
io_service's concurrency hint is set to 1. Refs #6657.
Text files modified:
trunk/boost/asio/detail/impl/task_io_service.ipp | 10 ++++------
trunk/libs/asio/doc/history.qbk | 3 +++
2 files changed, 7 insertions(+), 6 deletions(-)
Modified: trunk/boost/asio/detail/impl/task_io_service.ipp
==============================================================================
--- trunk/boost/asio/detail/impl/task_io_service.ipp (original)
+++ trunk/boost/asio/detail/impl/task_io_service.ipp 2012-05-28 18:03:36 EDT (Mon, 28 May 2012)
@@ -369,14 +369,13 @@
else
lock.unlock();
- op_queue<operation> completed_ops;
- task_cleanup on_exit = { this, &lock, &completed_ops };
+ task_cleanup on_exit = { this, &lock, &private_op_queue };
(void)on_exit;
// Run the task. May throw an exception. Only block if the operation
// queue is empty and we're not polling, otherwise we want to return
// as soon as possible.
- task_->run(!more_handlers, completed_ops);
+ task_->run(!more_handlers, private_op_queue);
}
else
{
@@ -423,14 +422,13 @@
lock.unlock();
{
- op_queue<operation> completed_ops;
- task_cleanup c = { this, &lock, &completed_ops };
+ task_cleanup c = { this, &lock, &private_op_queue };
(void)c;
// Run the task. May throw an exception. Only block if the operation
// queue is empty and we're not polling, otherwise we want to return
// as soon as possible.
- task_->run(false, completed_ops);
+ task_->run(false, private_op_queue);
}
o = op_queue_.front();
Modified: trunk/libs/asio/doc/history.qbk
==============================================================================
--- trunk/libs/asio/doc/history.qbk (original)
+++ trunk/libs/asio/doc/history.qbk 2012-05-28 18:03:36 EDT (Mon, 28 May 2012)
@@ -20,6 +20,9 @@
* Improved the performance of strand rescheduling.
* Added support for [^g++] 4.7 when compiling in C++11 mode
([@https://svn.boost.org/trac/boost/ticket/6620 #6620]).
+* Fixed a problem where `signal_set` handlers were not being delivered when
+ the `io_service` was constructed with a `concurrency_hint` of 1
+ ([@https://svn.boost.org/trac/boost/ticket/6657 #6657]).
[heading Asio 1.8.0 / Boost 1.49]
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk