CubemapStateProto collect_state(const timeval &serialize_start,
const vector<Acceptor *> acceptors,
const vector<Input *> inputs,
- ServerPool *servers,
- int num_servers)
+ ServerPool *servers)
{
- CubemapStateProto state;
+ CubemapStateProto state = servers->serialize(); // Fills streams() and clients().
state.set_serialize_start_sec(serialize_start.tv_sec);
state.set_serialize_start_usec(serialize_start.tv_usec);
state.add_inputs()->MergeFrom(inputs[i]->serialize());
}
- for (int i = 0; i < num_servers; ++i) {
- CubemapStateProto local_state = servers->get_server(i)->serialize();
-
- // The stream state should be identical between the servers, so we only store it once.
- if (i == 0) {
- state.mutable_streams()->MergeFrom(local_state.streams());
- }
- for (int j = 0; j < local_state.clients_size(); ++j) {
- state.add_clients()->MergeFrom(local_state.clients(j));
- }
- }
-
return state;
}
fprintf(stderr, "Serializing state and re-execing...\n");
int state_fd = make_tempfile(collect_state(
- serialize_start, acceptors, inputs, servers, config.num_servers));
+ serialize_start, acceptors, inputs, servers));
delete servers;
char buf[16];