memset (app, 0, sizeof (*app));
app->index = application_get_index (app);
app->connects_seg_manager = ~0;
+ app->first_segment_manager = ~0;
+ if (CLIB_DEBUG > 1)
+ clib_warning ("[%d] New app (%d)", getpid (), app->index);
return app;
}
* The app event queue allocated in first segment is cleared with
* the segment manager. No need to explicitly free it.
*/
+ if (CLIB_DEBUG > 1)
+ clib_warning ("[%d] Delete app (%d)", getpid (), app->index);
/*
* Cleanup segment managers
vnet_unbind (a);
}
+ if (app->first_segment_manager != ~0)
+ {
+ sm = segment_manager_get (app->first_segment_manager);
+ segment_manager_first_segment_maybe_del (sm);
+ }
+
application_table_del (app);
pool_put (app_pool, app);
}
if (app->first_segment_manager != (u32) ~ 0)
{
sm = segment_manager_get (app->first_segment_manager);
- app->first_segment_manager = ~0;
return sm;
}
sm = segment_manager_get (*indexp);
segment_manager_del (sm);
+ srv->first_segment_manager = ~0;
hash_unset (srv->listeners_table, handle);
listen_session_del (listener);