in fbpcf/mpc/EmpTestUtil.h [27:54]
std::pair<OutputDataType, OutputDataType> test(
InputDataType aliceInput,
InputDataType bobInput) {
auto queueA = std::make_shared<folly::Synchronized<std::queue<char>>>();
auto queueB = std::make_shared<folly::Synchronized<std::queue<char>>>();
auto lambda = [&queueA, &queueB](Party party, InputDataType input) {
auto io = std::make_unique<QueueIO>(
party == Party::Alice ? QueueIO{queueA, queueB}
: QueueIO{queueB, queueA});
EmpGameClass game{std::move(io), party};
try {
return game.perfPlay(input);
} catch (const std::exception& e) {
std::cout << "Exception occured. " << e.what() << endl;
exit(EXIT_FAILURE);
}
};
auto futureAlice = std::async(lambda, Party::Alice, std::move(aliceInput));
auto futureBob = std::async(lambda, Party::Bob, std::move(bobInput));
auto resAlice = futureAlice.get();
auto resBob = futureBob.get();
return std::make_pair(resAlice, resBob);
}