Я хочу удалить все обработчики из права IO_service, прежде чем я снова использую его. Действительно ли это возможно?
Я пишу модульные тесты, которые включают asio::io_service
. Промежуточный каждый тестовый сценарий я хочу очистить обработчики от глобального io_service
. Я думал это io_service::reset
был бы к этому, но это не делает. reset()
только позволяет io_service
быть возобновленным. Все обработчики от последнего тестового сценария все еще стоятся в очереди.
Я только должен сделать это для поблочного тестирования, таким образом, любой сумасшедший взлом работал бы.
Подробнее:
io_service
от a deadline_timer
членская переменная. deadline_timer
часть кода, который я тестирую так, я не могу измениться, как это создается. Я овладеваю io_service
через deadline_timer
get_io_service
метод.
:TOhtml
создаст новый буфер, содержащий предыдущий буфер с HTML-форматом, включая выделение объекта (и выделение синтаксиса, если оно было включено). Для получения дополнительной информации см. : h TOhtml
.
, чтобы ваш код выглядел лучше при просмотре источника
$variable = 'foo';
echo "this is my php variable $variable \n";
echo "this is another php echo here $variable\n";
, когда ваш код будет выглядеть как, с хорошим возвратом строк благодаря\n
this is my php variable foo
this is another php echo here foo
-121--1342726- Ну, я постучал свой мозг на это в течение нескольких дней и придумал работоспособное решение. Это мать всех хакеров.
void clear( boost::asio::io_service& service )
{
service.stop();
service.~io_service();
new( &service ) boost::asio::io_service;
}
Я не уверен, насколько это безопасно для производственный. Но пока вроде бы работает (ни сегфолтов, ни странного поведения).