Понимание примера prioritised_handlers.cpp из boost :: asio - PullRequest
1 голос
/ 04 февраля 2011

Я использую boost::asio и пытаюсь контролировать порядок вызова моих обработчиков. Я указал на пример prioritised_handlers.cpp.Когда я попытался адаптировать его, я не получил ожидаемого поведения.Когда я передаю обработчик в io_service.post из обработчика, обработчик никогда не запускается.

Я начал пытаться найти самый маленький пример поведения, которого я не понимаю.Итак, сделайте следующую модификацию для http://www.boost.org/doc/libs/1_38_0/doc/html/boost_asio/example/invocation/prioritised_handlers.cpp

Простой пример:

161   while (io_service.run_one())
162   {
163     // The custom invocation hook adds the handlers to the priority
164     // queue
165     // rather than executing them from within the poll_one() call.
166     while (io_service.poll_one())
167       ;
168     io_service.post(pri_queue.wrap(1, low_priority_handler));
169 
170     pri_queue.execute_all();
171 
172   }
...