in src/utils.cc [39:55]
void waitForResult(std::promise<pulsar::Result>& promise) {
auto future = promise.get_future();
while (true) {
{
py::gil_scoped_release release;
auto status = future.wait_for(std::chrono::milliseconds(100));
if (status == std::future_status::ready) {
CHECK_RESULT(future.get());
return;
}
}
py::gil_scoped_acquire acquire;
if (PyErr_CheckSignals() != 0) {
raiseException(ResultInterrupted);
}
}
}