LINUX.ORG.RU

История изменений

Исправление bugfixer, (текущая версия) :

Кто хочет перехватывать exit, ставит туда свой обработчик

Дык, в том то и дело что явно никто себя в atexit() не добавлял. Речь о довольно сложном и «неконтролируемом» наборе global и function-local statics в модели publisher-subscriber. Причём publisher - singleton. Пришлось добавить на него pointer в subscribers (они не обязательно static - могут come and go semi-randomly), и обнулять его пробегаясь по списку subscriber’ов в деструкторе publisher’а (счёт subscribers идёт на десятки) дабы отвязаться от порядка destruction. Хотя, по большому счету, outside of main message processing loop это всё «возня в песочнице» и «waste of CPU cycles»: знать бы что выходим - можно было бы не делать ничего.

Исходная версия bugfixer, :

Кто хочет перехватывать exit, ставит туда свой обработчик

Дык, в том то и дело что явно никто себя в atexit() не добавлял. Речь о довольно сложном и «неконтролируемом» наборе global и function-local statics в модели publisher-subscriber. Причём publisher - singleton. Пришлось добавить на него pointer в subscribers (они не обязательно static - могут come and go semi-randomly), и обнулять его пробегаясь по списку subscriber’ов в деструкторе publisher (счёт subscribers идёт на десятки) дабы отвязаться от порядка destruction. Хотя, по большому счету, outside of main message processing loop это всё «возня в песочнице» и «waste of CPU cycles»: знать бы что выходим - можно было бы не делать ничего.