-
Notifications
You must be signed in to change notification settings - Fork 46
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rework the listDirectory implementation #242
Conversation
1524395
to
30bb993
Compare
Sometimes crashed on macos when the logger instance was reaped at runtime shutdown time.
Adds a low-overhead mode to Channel!T that causes the buffer to be fully processed before notifying waiting peers instead of notifying immediately once data/space is available. This heavily reduces the overhead of cross-task/thread notifications at the expense of introducing processing latency and requiring a call to close() to guarantee that all data has been processed.
- Directly uses OS facilities instead of Phobos to avoid string processing overhead and to enable fast skipping of non-directories - Introduces a DirectoryListMode, similar to SpanMode - Uses low-overhead channels to reduce the communication overhead between the calling thread and the worker thread that calls the OS - Adds FileInfo.path to properly support the new recursive directory iteration schemes
eb3e9a5
to
1f0ac47
Compare
This broke Vibe.d on Musl. First, because |
Do you want to go ahead and add a musl based CI job? Granted, not much is happening at the OS interface these days, but since I don't personally use it, that's the only sane way to avoid it breaking. |
I just had a look and it would really be nice to unify the Druntime declarations across architectures as far as possible (although that is obviously not an immediate fix). Most systems are actually binary compatible for the time fields, but definitions range from |
Fix: #249 |
I tried that a while ago with Vibe.d and dub, but had some issues, can't remember why. Will take another look. |
It would be nice if we could just parse the system headers. |
Note that this should only be merged once #241 is merged and this is rebased.