Fix a race in Promise::setTry
Summary: This fixes a race which can only be exposed if Promise is owned by the same thread which was calling await and Promise is fulfilled from a different thread. What could happen then was: 1. Thread 2 fulfills the promise and thus saves the value and posts Baton. 2. Thread 1 wakes up, await returns and then Thread 1 destroys the Promise. 3. Promise destructor checks value_, which is still not null, so it tries to fulfil it with exception. Reviewed By: spalamarchuk Differential Revision: D3306969 fbshipit-source-id: adf799cfd7b75b0201fa675a9e44ac7c7c42ac95
Showing
Please register or sign in to comment