]> git.sesse.net Git - cubemap/blobdiff - main.cpp
Make backlog_size changeable across HUPs.
[cubemap] / main.cpp
index e48bdf1f7761c2933d8279810602cbccd2a724ca..07273141fe04b5ec17bf0e3de7394deb414b501a 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -1,39 +1,30 @@
-#include <stdio.h>
-#include <string.h>
-#include <stdint.h>
-#include <unistd.h>
 #include <assert.h>
+#include <errno.h>
 #include <getopt.h>
-#include <arpa/inet.h>
-#include <sys/socket.h>
-#include <pthread.h>
-#include <sys/types.h>
-#include <sys/ioctl.h>
-#include <sys/poll.h>
+#include <google/protobuf/stubs/common.h>
+#include <signal.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
 #include <sys/time.h>
-#include <sys/types.h>
 #include <sys/wait.h>
-#include <signal.h>
-#include <errno.h>
-#include <ctype.h>
-#include <fcntl.h>
-#include <vector>
-#include <string>
+#include <unistd.h>
 #include <map>
 #include <set>
+#include <string>
+#include <utility>
+#include <vector>
 
 #include "acceptor.h"
 #include "config.h"
+#include "input.h"
 #include "markpool.h"
-#include "metacube.h"
-#include "parse.h"
-#include "server.h"
 #include "serverpool.h"
-#include "input.h"
+#include "state.pb.h"
 #include "stats.h"
 #include "util.h"
 #include "version.h"
-#include "state.pb.h"
 
 using namespace std;
 
@@ -154,7 +145,9 @@ void create_streams(const Config &config,
        for (unsigned i = 0; i < config.streams.size(); ++i) {
                const StreamConfig &stream_config = config.streams[i];
                if (deserialized_stream_ids.count(stream_config.stream_id) == 0) {
-                       servers->add_stream(stream_config.stream_id);
+                       servers->add_stream(stream_config.stream_id, stream_config.backlog_size);
+               } else {
+                       servers->set_backlog_size(stream_config.stream_id, stream_config.backlog_size);
                }
                expecting_stream_ids.erase(stream_config.stream_id);
 
@@ -272,7 +265,7 @@ start:
        if (state_fd != -1) {
                fprintf(stderr, "Deserializing state from previous process... ");
                string serialized;
-               if (!read_tempfile(atoi(argv[3]), &serialized)) {
+               if (!read_tempfile(state_fd, &serialized)) {
                        exit(1);
                }
                if (!loaded_state.ParseFromString(serialized)) {
@@ -329,8 +322,6 @@ start:
        if (!config.stats_file.empty()) {
                stats_thread = new StatsThread(config.stats_file, config.stats_interval);
                stats_thread->run();
-       } else if (config.stats_interval != -1) {
-               fprintf(stderr, "WARNING: 'stats_interval' given, but no 'stats_file'. No statistics will be written.\n");
        }
 
        signal(SIGHUP, hup);