]> git.sesse.net Git - cubemap/blobdiff - main.cpp
Fix a bug where Metacube streams would become inconsistent between different servers...
[cubemap] / main.cpp
index 46eddaf834ce7aacfa3c3e518d70618747731246..0aa91f38becb8ab9b0d9a6cd75a6a11278e997d0 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -50,6 +50,10 @@ void hup(int signum)
        }
 }
 
+void do_nothing(int signum)
+{
+}
+
 CubemapStateProto collect_state(const timeval &serialize_start,
                                 const vector<Acceptor *> acceptors,
                                 const multimap<string, InputWithRefcount> inputs,
@@ -149,9 +153,9 @@ void create_streams(const Config &config,
                                            Stream::Encoding(stream_config.encoding));
                } else {
                        servers->set_backlog_size(stream_config.stream_id, stream_config.backlog_size);
-                       servers->set_encoding(stream_config.stream_id,
-                                             Stream::Encoding(stream_config.encoding));
                }
+               servers->set_encoding(stream_config.stream_id,
+                                     Stream::Encoding(stream_config.encoding));
                expecting_stream_ids.erase(stream_config.stream_id);
 
                if (stream_config.mark_pool != -1) {
@@ -239,6 +243,7 @@ int main(int argc, char **argv)
 {
        signal(SIGHUP, hup);
        signal(SIGINT, hup);
+       signal(SIGUSR1, do_nothing);  // Used in internal signalling.
        signal(SIGPIPE, SIG_IGN);
        
        // Parse options.