diff options
| author | Dan Engelbrecht <[email protected]> | 2025-05-16 19:51:36 +0200 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2025-05-16 19:51:36 +0200 |
| commit | 4e2efa1051e3eb86ab48d92b3f6ad5896cda5d81 (patch) | |
| tree | 1fbab083b3fe8919a36caa2d925c933f696a5791 /src/zencore/filesystem.cpp | |
| parent | validate custom fields (#399) (diff) | |
| download | zen-4e2efa1051e3eb86ab48d92b3f6ad5896cda5d81.tar.xz zen-4e2efa1051e3eb86ab48d92b3f6ad5896cda5d81.zip | |
parallel work handle dispatch exception (#400)
- Bugfix: Wait for async threads if dispatching of work using ParallellWork throws exception
Diffstat (limited to 'src/zencore/filesystem.cpp')
| -rw-r--r-- | src/zencore/filesystem.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/zencore/filesystem.cpp b/src/zencore/filesystem.cpp index c1df6d53e..f71397922 100644 --- a/src/zencore/filesystem.cpp +++ b/src/zencore/filesystem.cpp @@ -2322,12 +2322,17 @@ GetDirectoryContent(const std::filesystem::path& RootDir, RelativeRoot = RelativeRoot / DirectoryName]() { ZEN_ASSERT(Visitor); auto _ = MakeGuard([&]() { PendingWorkCount->CountDown(); }); + try { MultithreadedVisitor SubVisitor(*WorkerPool, *PendingWorkCount, RelativeRoot, Flags, Visitor); FileSystemTraversal Traversal; Traversal.TraverseFileSystem(Path, SubVisitor); Visitor->AsyncVisitDirectory(SubVisitor.RelativeRoot, std::move(SubVisitor.Content)); } + catch (const std::exception& Ex) + { + ZEN_ERROR("Failed scheduling work to scan subfolder '{}'. Reason: '{}'", Path / RelativeRoot, Ex.what()); + } }); } catch (const std::exception Ex) |