Call destroyInstance after workers have exited
Router and filter instances cannot be destroyed before all worker threads have exited. Otherwise there is a risk that data gets deleted while someone might still be accessing it. Further, since all router and filter instances are created by the main-thread it is better that they are deleted by that thread as well (and not by whichever thread happens to execute service_shutdown()). That will reduce the risk that some unknown assumptions are violated.
This commit is contained in:
@ -2044,6 +2044,12 @@ int main(int argc, char **argv)
|
||||
{
|
||||
thread_wait(threads[thread_id]);
|
||||
}
|
||||
|
||||
/*<
|
||||
* Destroy the router and filter instances of all services.
|
||||
*/
|
||||
service_destroy_instances();
|
||||
|
||||
/*<
|
||||
* Wait the flush thread.
|
||||
*/
|
||||
|
Reference in New Issue
Block a user