X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=server.cpp;h=a5f6a329ec2fed4017f7407eeeee0ba932979be7;hp=879063339c9b2a6efca5a0c45fb0ce2e1633019b;hb=9b8129d05b5d1ec0caed09a40f170e967afc60b3;hpb=628e632811242333b1a88330c380ce48b8521fcb diff --git a/server.cpp b/server.cpp index 8790633..a5f6a32 100644 --- a/server.cpp +++ b/server.cpp @@ -35,7 +35,7 @@ extern AccessLogThread *access_log; Server::Server() { pthread_mutex_init(&mutex, NULL); - pthread_mutex_init(&queued_data_mutex, NULL); + pthread_mutex_init(&queued_clients_mutex, NULL); epoll_fd = epoll_create(1024); // Size argument is ignored. if (epoll_fd == -1) { @@ -140,7 +140,7 @@ CubemapStateProto Server::serialize() void Server::add_client_deferred(int sock) { - MutexLock lock(&queued_data_mutex); + MutexLock lock(&queued_clients_mutex); queued_add_clients.push_back(sock); } @@ -273,7 +273,6 @@ void Server::set_mark_pool(int stream_index, MarkPool *mark_pool) void Server::add_data_deferred(int stream_index, const char *data, size_t bytes, StreamStartSuitability suitable_for_stream_start) { - MutexLock lock(&queued_data_mutex); assert(stream_index >= 0 && stream_index < ssize_t(streams.size())); streams[stream_index]->add_data_deferred(data, bytes, suitable_for_stream_start); } @@ -624,12 +623,14 @@ void Server::close_client(Client *client) void Server::process_queued_data() { - MutexLock lock(&queued_data_mutex); + { + MutexLock lock(&queued_clients_mutex); - for (size_t i = 0; i < queued_add_clients.size(); ++i) { - add_client(queued_add_clients[i]); + for (size_t i = 0; i < queued_add_clients.size(); ++i) { + add_client(queued_add_clients[i]); + } + queued_add_clients.clear(); } - queued_add_clients.clear(); for (size_t i = 0; i < streams.size(); ++i) { streams[i]->process_queued_data();