X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=server.cpp;h=2eb33ed9edcac0ff793f779a7fec21db4cc6b058;hp=6d5cce372ae9c79b81b4b755052252680ce3cf28;hb=e0b47eba2f5ec1aca1d02adc9fb4ffc7293d5c0f;hpb=7c26826d3c485f4f18a6c427f520dc470e68f94a diff --git a/server.cpp b/server.cpp index 6d5cce3..2eb33ed 100644 --- a/server.cpp +++ b/server.cpp @@ -250,7 +250,7 @@ void Server::set_mark_pool(const string &stream_id, MarkPool *mark_pool) void Server::add_data_deferred(const string &stream_id, const char *data, size_t bytes) { MutexLock lock(&queued_data_mutex); - queued_data[stream_id].append(string(data, data + bytes)); + find_stream(stream_id)->add_data_deferred(data, bytes); } // See the .h file for postconditions after this function. @@ -571,12 +571,9 @@ void Server::process_queued_data() } queued_add_clients.clear(); - for (map::iterator queued_it = queued_data.begin(); - queued_it != queued_data.end(); - ++queued_it) { - Stream *stream = find_stream(queued_it->first); - stream->add_data(queued_it->second.data(), queued_it->second.size()); - stream->wake_up_all_clients(); + for (map::iterator stream_it = streams.begin(); + stream_it != streams.end(); + ++stream_it) { + stream_it->second->process_queued_data(); } - queued_data.clear(); }