Существует несколько проблем:
- Бухгалтерский учет станет дорогостоящим, особенно в системах с большим количеством операций и значительным параллелизмом.
- Даже если вы получилисписок, вы не знаете, является ли он актуальным.
Я не знаю, являются ли это конкретными причинами для boost :: asio, но эти причины выскакивают у меня.
Чтобы решить актуальную проблему, деструкторы и прицелы - ваш друг.Я считаю полезным иметь контейнер дескрипторов объектов высокого уровня (например, слушателей сокетов) и просто позволять им выходить из области видимости, когда вы хотите завершить работу.Я считаю, что shared_ptr хорош, но вы можете использовать любые варианты.
Если вам нужно вызвать метод stop()
для каждого объекта, который вы хотите остановить, вы что-то забудете.Пусть деструкторы делают всю работу.