Esempio n. 1
0
void host_free(Host* host, gpointer userData) {
	MAGIC_ASSERT(host);

	g_queue_free(host->applications);

	topology_detach(worker_getTopology(), networkinterface_getAddress(host->defaultInterface));

	g_hash_table_destroy(host->interfaces);
	g_hash_table_destroy(host->descriptors);
	g_hash_table_destroy(host->shadowToOSHandleMap);
	g_hash_table_destroy(host->osToShadowHandleMap);
	g_hash_table_destroy(host->unixPathToPortMap);

	g_free(host->name);

	eventqueue_free(host->events);
	cpu_free(host->cpu);
	tracker_free(host->tracker);

	g_queue_free(host->availableDescriptors);

	g_mutex_clear(&(host->lock));

	MAGIC_CLEAR(host);
	g_free(host);
}
Esempio n. 2
0
void worker_free(Worker* worker) {
    MAGIC_ASSERT(worker);

    /* calls the destroy functions we specified in g_hash_table_new_full */
    g_hash_table_destroy(worker->privatePrograms);

    if(worker->serialEventQueue) {
        eventqueue_free(worker->serialEventQueue);
    }

    MAGIC_CLEAR(worker);
    g_private_set(&workerKey, NULL);
    g_free(worker);
}