if (!client)
return;
- if (client->resource_table) {
- g_mutex_lock(&client->mutex);
+ if (client->resource_table)
g_hash_table_foreach(client->resource_table, (GHFunc)free_resource, NULL);
- g_mutex_unlock(&client->mutex);
- }
}
static void
register_resource_to_client(struct request_client *client, struct resource *res)
{
- g_mutex_lock(&client->mutex);
g_hash_table_insert(client->resource_table, (gpointer)&res->id, (gpointer)res);
- g_mutex_unlock(&client->mutex);
}
static struct resource *
{
struct resource *res;
- g_mutex_lock(&client->mutex);
res = g_hash_table_lookup(client->resource_table, (gpointer)&resource_id);
- g_mutex_unlock(&client->mutex);
return res;
}
client->id = socket_fd;
client->resource_table = g_hash_table_new(g_int_hash, g_int_equal);
- g_mutex_init(&client->mutex);
-
create_daemon_thread(&client->worker, request_handler_func, client);
add_client_to_list(client);