wl_map_init(&client->objects, WL_MAP_SERVER_SIDE);
+ pthread_mutex_init(&client->connection_mutex, NULL);
+ pthread_mutex_init(&client->objects_mutex, NULL);
+
if (wl_map_insert_at(&client->objects, 0, 0, NULL) < 0)
goto err_map;
wl_client_get_process_name(client);
- pthread_mutex_init(&client->connection_mutex, NULL);
- pthread_mutex_init(&client->objects_mutex, NULL);
-
wl_list_insert(display->client_list.prev, &client->link);
wl_priv_signal_emit(&display->create_client_signal, client);
err_map:
wl_map_release(&client->objects);
wl_connection_destroy(client->connection);
+ pthread_mutex_destroy(&client->objects_mutex);
+ pthread_mutex_destroy(&client->connection_mutex);
err_source:
wl_event_source_remove(client->source);
err_client: