Например возвращать не void, а некоторую сущность, дающую доступ к этому асинхронному процессу. Главное, чтобы была возможность контроля над этим асинхронным процессом. В противном случае любой асинхронный процесс рискует стать зомби.
Так метод тогда должен называться не runOnce а типа invoke...., и соответствующими методами класса для контроля над асинхронными процессами. У вас же претензия в том, что чтение продолжает работать после завершения runOnce.
Ну так надо метод сделать для его закрытия.
Антипаттерн здесь вовсе не в shared_from_this, а использовании асинхронного чтения в runOnce. Тут надо или читать синхронно или дожидаться завершения и уж потом выходить.
У этой истории есть еще одна мораль: а как вообще предыдущий работодатель узнал о новом месте работы? Наверное растрезвонил во всяких фейсбуках и линкединах. sarcasm on А ну да, ведь честному человеку же нечего скрывать! " sarcasm off
Возможно станет ему уроком, а также тем, кто предпочитает учиться на чужих ошибках, а не делать собственные.
Я из тех кто «со дня на день передохнет от старости», тем не менее, если кандидат повсюду в интернете рассказывает о том, что он делает на работе, для это была бы минусом.
Во-первых, такими действиями он может прямо и косвенно навредить своему работодателю, например, этой информацией смогут воспользоваться конкуренты или привести к репутационным потерями.
Во-вторых, если человек все это понимает и действует согласованно с PR отделом, то возникает вопрос, чем он вообще на работе занят: пишет код или пиарится.
Не лучше ли сразу держать указатель на коллбэк в events[i].data.ptr и обойтись без лишнего поиска в хэше?
Антипаттерн здесь вовсе не в shared_from_this, а использовании асинхронного чтения в runOnce. Тут надо или читать синхронно или дожидаться завершения и уж потом выходить.
Или просто закрыть стрим, тогда async_read вызовет коллбэк с ошибкой и все остановится корректно.
Не подскажете, где взять такой список законным способом?
Я просто не стану облегчать им жизнь, распространяя информацию о себе. Основная масса сразу отсеется, ибо иные методы уже слишком затратны.
sarcasm on А ну да, ведь честному человеку же нечего скрывать! " sarcasm off
Возможно станет ему уроком, а также тем, кто предпочитает учиться на чужих ошибках, а не делать собственные.
Во-первых, такими действиями он может прямо и косвенно навредить своему работодателю, например, этой информацией смогут воспользоваться конкуренты или привести к репутационным потерями.
Во-вторых, если человек все это понимает и действует согласованно с PR отделом, то возникает вопрос, чем он вообще на работе занят: пишет код или пиарится.
EcDSA например
Вот тема github.com/PurpleI2P/i2pd/issues/345
Вроде с 2.22 там все в порядке.
Может быть все таки «r», а не «k»?