// and the order between them are undefined.
// XXX: header should ideally be ordered with respect to data.
void add_client_deferred(int sock);
- void add_data_deferred(int stream_index, const char *data, size_t bytes);
+ void add_data_deferred(int stream_index, const char *data, size_t bytes, StreamStartSuitability suitable_for_stream_start);
// These should not be called while running, since that would violate
// threading assumptions (ie., that epoll is only called from one thread
void set_encoding(int stream_index, Stream::Encoding encoding);
private:
- // Mutex protecting queued_add_clients and streams[..]->queued_data.
+ // Mutex protecting queued_add_clients.
// Note that if you want to hold both this and <mutex> below,
// you will need to take <mutex> before this one.
- mutable pthread_mutex_t queued_data_mutex;
+ mutable pthread_mutex_t queued_clients_mutex;
// Deferred commands that should be run from the do_work() thread as soon as possible.
// We defer these for two reasons:
// add_data(), since they want to do add_data() rather often, and <mutex>
// can be taken a lot of the time.
//
- // Protected by <queued_data_mutex>.
+ // Protected by <queued_clients_mutex>.
std::vector<int> queued_add_clients;
// All variables below this line are protected by the mutex.