소스 검색

more synchronization issues

tristangurtler 3 년 전
부모
커밋
9a88731691
1개의 변경된 파일3개의 추가작업 그리고 0개의 파일을 삭제
  1. 3 0
      prsona/src/networkOrchestrator.cpp

+ 3 - 0
prsona/src/networkOrchestrator.cpp

@@ -247,6 +247,7 @@ void execute_experiment(
                 whichActors = generate_random_set(rng, numVoters, clientIPs.size());
                 for (size_t i = 0; i < whichActors.size(); i++)
                     trigger_vote(clientIPs[whichActors[i]], clientPorts[whichActors[i]]);
+                std::this_thread::sleep_for(HALF_SECOND);
                 for (size_t i = 0; i < whichActors.size(); i++)
                     clientWaiters.push_back(std::thread(wait_for_client_ready, clientIPs[whichActors[i]], clientPorts[whichActors[i]]));
                 for (size_t i = 0; i < clientWaiters.size(); i++)
@@ -269,6 +270,7 @@ void execute_experiment(
 
                     proofActors.push_back(whichActors);
                 }
+                std::this_thread::sleep_for(HALF_SECOND);
                 for (size_t i = 0; i < proofActors.size(); i++)
                     clientWaiters.push_back(std::thread(wait_for_client_ready, clientIPs[proofActors[i][0]], clientPorts[proofActors[i][0]]));
                 for (size_t i = 0; i < clientWaiters.size(); i++)
@@ -280,6 +282,7 @@ void execute_experiment(
             // Epoch change triggers come in form `E`
             case 'E':
                 trigger_epoch_change(dealerIP, dealerPort);
+                std::this_thread::sleep_for(HALF_SECOND);
                 wait_for_servers_ready(dealerIP, dealerPort);
                 break;