MCPcopy Create free account
hub / github.com/corosync/corosync / cmap_lib_exit_fn

Function cmap_lib_exit_fn

exec/cmap.c:385–421  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

383}
384
385static int cmap_lib_exit_fn (void *conn)
386{
387 struct cmap_conn_info *conn_info = (struct cmap_conn_info *)api->ipc_private_data_get (conn);
388 hdb_handle_t iter_handle = 0;
389 icmap_iter_t *iter;
390 hdb_handle_t track_handle = 0;
391 icmap_track_t *track;
392
393 log_printf(LOGSYS_LEVEL_DEBUG, "exit_fn for conn=%p", conn);
394
395 hdb_iterator_reset(&conn_info->iter_db);
396 while (hdb_iterator_next(&conn_info->iter_db,
397 (void*)&iter, &iter_handle) == 0) {
398
399 conn_info->map_fns.map_iter_finalize(*iter);
400
401 (void)hdb_handle_put (&conn_info->iter_db, iter_handle);
402 }
403
404 hdb_destroy(&conn_info->iter_db);
405
406 hdb_iterator_reset(&conn_info->track_db);
407 while (hdb_iterator_next(&conn_info->track_db,
408 (void*)&track, &track_handle) == 0) {
409
410 free(conn_info->map_fns.map_track_get_user_data(*track));
411
412 conn_info->map_fns.map_track_delete(*track);
413
414 (void)hdb_handle_put (&conn_info->track_db, track_handle);
415 }
416 hdb_destroy(&conn_info->track_db);
417
418 api->ipc_refcnt_dec(conn);
419
420 return (0);
421}
422
423static void cmap_sync_init (
424 const unsigned int *trans_list,

Callers

nothing calls this directly

Calls 4

hdb_iterator_resetFunction · 0.85
hdb_iterator_nextFunction · 0.85
hdb_handle_putFunction · 0.85
hdb_destroyFunction · 0.85

Tested by

no test coverage detected