Ensure initial synchronization is atomic.

This commit is contained in:
Peter Johnson
2015-07-31 23:56:06 -07:00
parent 0a10778697
commit 11508b77d1
5 changed files with 29 additions and 23 deletions

View File

@@ -44,11 +44,12 @@ class Storage {
NT_Type GetEntryType(unsigned int id) const;
void ProcessIncoming(std::shared_ptr<Message> msg, NetworkConnection* conn,
unsigned int proto_rev);
void GetInitialAssignments(std::vector<std::shared_ptr<Message>>* msgs);
void ApplyInitialAssignments(llvm::ArrayRef<std::shared_ptr<Message>> msgs,
bool new_server, unsigned int proto_rev,
void ProcessIncoming(std::shared_ptr<Message> msg, NetworkConnection* conn);
void GetInitialAssignments(NetworkConnection& conn,
std::vector<std::shared_ptr<Message>>* msgs);
void ApplyInitialAssignments(NetworkConnection& conn,
llvm::ArrayRef<std::shared_ptr<Message>> msgs,
bool new_server,
std::vector<std::shared_ptr<Message>>* out_msgs);
std::mutex& mutex() { return m_mutex; }