static void __domain_destruct(void *obj) { int ret = FI_SUCCESS; struct gnix_fid_domain *domain = (struct gnix_fid_domain *) obj; GNIX_TRACE(FI_LOG_DOMAIN, "\n"); ret = _gnix_close_cache(domain); if (ret != FI_SUCCESS) GNIX_FATAL(FI_LOG_MR, "failed to close memory registration cache\n"); ret = _gnix_notifier_close(domain->mr_cache_attr.notifier); if (ret != FI_SUCCESS) GNIX_FATAL(FI_LOG_MR, "failed to close MR notifier\n"); /* * remove from the list of cdms attached to fabric */ dlist_remove_init(&domain->list); _gnix_ref_put(domain->fabric); memset(domain, 0, sizeof *domain); free(domain); }
static void __fabric_destruct(void *obj) { struct gnix_fid_fabric *fab = (struct gnix_fid_fabric *) obj; /* * close the MR notifier */ (void) _gnix_notifier_close(&fab->mr_notifier); _gnix_app_cleanup(); free(fab); }