diff options
-rw-r--r-- | netfs/fuse/fuseFiles.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/netfs/fuse/fuseFiles.cpp b/netfs/fuse/fuseFiles.cpp index 1c488ba..f08c1dd 100644 --- a/netfs/fuse/fuseFiles.cpp +++ b/netfs/fuse/fuseFiles.cpp @@ -132,8 +132,16 @@ namespace NetFS { } // Wait for them whilst unlocked lock.release()->unlock(); - for (const auto & r : overlap) { - r->future.wait(); + try { + for (const auto & r : overlap) { + r->future.get(); + } + } + catch (const SystemError &) { + throw; + } + catch (...) { + throw SystemError {ECOMM}; } // Cause this thread to yield so the callback can lock mutex usleep(0); |