fix race in Future::waitWithSemaphore
Summary: There's a race condition in waitWithSemaphore, specifically because we're returning a new future that's completed by the input future. As a result, that future may not be completed by the time waitWithSemaphore returns, although completion should be imminent. Test Plan: `var=0; while true ; do echo $((var++)); _bin/folly/wangle/wangle-test --gtest_filter='Future*' || break ; done` Before change two runs yielded 303 and 371. After change I killed the test at 11000. Reviewed By: njormrod@fb.com Subscribers: fugalh, njormrod FB internal diff: D1561281 Tasks: 5180879
Showing
Please register or sign in to comment