Удалите все обработчики из повышения:: asio:: io_service, не называя их

Я хочу удалить все обработчики из права 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 метод.

12
задан deft_code 23 February 2010 в 00:43
поделиться

1 ответ

:TOhtml

создаст новый буфер, содержащий предыдущий буфер с HTML-форматом, включая выделение объекта (и выделение синтаксиса, если оно было включено). Для получения дополнительной информации см. : h TOhtml .

-121--3853602-

, чтобы ваш код выглядел лучше при просмотре источника

$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;
}

Я не уверен, насколько это безопасно для производственный. Но пока вроде бы работает (ни сегфолтов, ни странного поведения).

3
ответ дан 2 December 2019 в 23:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: