Commit graph

756 commits

Author SHA1 Message Date
Leonid Kramer 58f6b06e2d
Merge pull request #244 from vibe-d/osx_listdirectory_fix
Add `DirectoryListMode.shallowDirectories` and fix macOS `fstatat` declaration
2021-01-12 20:01:21 +01:00
Sönke Ludwig 874e56ccac Add a basic sanity check test for listDirectory and test extended UTF-8 characters. 2021-01-12 17:42:32 +01:00
Sönke Ludwig 5e6231c738 Fix zero byte index computation. 2021-01-12 17:38:32 +01:00
Sönke Ludwig ca1fe41421 Add DirectoryListMode.shallowDirectories.
Shallow iteration, returning only directories. DirectoryListMode is now defined using bit combinations for "recursive" and "directories-only".
2021-01-12 17:37:02 +01:00
Sönke Ludwig d1273ca08b Fix the declaration of fstatat on macOS.
Was referencing the classic declaration that doesn't fit the current stat struct, leading to wrong stat results.
2021-01-12 17:37:02 +01:00
Sönke Ludwig df03416eea Reduce visibility of minor debug log message. 2021-01-12 17:37:01 +01:00
Leonid Kramer ff4c9851c7
Merge pull request #243 from vibe-d/parallel_pipe_improvement
Allow the buffer to grow for PipeMode.concurrent.
2021-01-12 14:52:49 +01:00
Sönke Ludwig 3e45456bf3 Allow the buffer to grow for PipeMode.concurrent.
Reduces overhead for fast streams by increasing the buffer size up to 4MB, as long as the latency stays below 100ms.
2021-01-12 14:40:36 +01:00
Leonid Kramer 0b6aa0d24c
Merge pull request #242 from vibe-d/rework_list_directory
Rework the listDirectory implementation
2021-01-12 11:30:49 +01:00
Leonid Kramer 6b6504b8c2
Merge pull request #241 from vibe-d/low_overhead_channel
Introduce ChannelConfig/ChannelPriority.
2021-01-12 11:30:03 +01:00
Sönke Ludwig 1f0ac47b9d Rework the listDirectory implementation.
- 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
2021-01-12 10:55:29 +01:00
Sönke Ludwig b6ed92e8b5 Introduce ChannelConfig/ChannelPriority.
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.
2021-01-12 10:55:12 +01:00
Sönke Ludwig 9980eae7a5 Fix intermittent unit test crash at shutdown.
Sometimes crashed on macos when the logger instance was reaped at runtime shutdown time.
2021-01-12 10:55:12 +01:00
Sönke Ludwig 3fbc8bb397 Fix deprecation warning. 2021-01-12 10:55:12 +01:00
Sönke Ludwig 05bc56dbba Bump version to 1.11.3. 2020-12-18 16:21:54 +01:00
Sönke Ludwig 3c4ac8b8df Update change log. 2020-12-18 16:21:44 +01:00
Leonid Kramer 0c1ea531b8
Merge pull request #240 from vibe-d/fix_worker_task_scheduling
Fix a worker task scheduling issue for busy worker tasks.
2020-12-18 15:31:05 +01:00
Sönke Ludwig f8a6044dba Avoid modern contract syntax. 2020-12-18 14:11:29 +01:00
Sönke Ludwig ade765d6bd Fix a worker task scheduling issue for busy worker tasks.
Fixes new tasks being able to be scheduled on a worker thread while a busy task (that periodically calls yield()) is running.
2020-12-15 19:43:20 +01:00
Sönke Ludwig 0bd78a1a95 Bump version to 1.11.2. 2020-12-12 10:56:46 +01:00
Sönke Ludwig 1fae2a26a5 Update change log. 2020-12-12 10:48:31 +01:00
Sönke Ludwig 34703d412d Make ScopedMutexLock nothrow.
Wrong order of lock/unlock calls are programming errors and should be treated as such.
2020-12-12 10:11:17 +01:00
Sönke Ludwig ba6c058148 Add some more VibeTaskLog logging. 2020-12-10 09:22:38 +01:00
Sönke Ludwig e018e161e7
Merge pull request #239 from vibe-d/fix_windows_direcory_lock
Fix bogus file access denied error after listDirectory calls on Windows
2020-12-02 21:31:22 +01:00
Sönke Ludwig a9ba6d98cb Fix bogus file access denied error after listDirectory calls on Windows.
Makes sure that `FindClose` gets called before `listDirectory` returns to avoid a race-condition, where a successive modification of the directory fails with "access denied".
2020-12-01 19:23:05 +01:00
Sönke Ludwig 3d1be3b3cb Improve debug trace logging. 2020-11-25 23:24:27 +01:00
Sönke Ludwig a44d3f2655 Avoid socket leaks in examples. 2020-11-25 23:23:58 +01:00
Sönke Ludwig 958856f6f1 Bump version to 1.11.1 2020-11-25 00:30:34 +01:00
Sönke Ludwig 4a46eeff6b Update change log. 2020-11-25 00:28:27 +01:00
Leonid Kramer 983cc15f70
Merge pull request #236 from vibe-d/fix_task_interrupt_assertion_failure
Avoid bogus "A task cannot interrupt itself" assertion failure.
2020-11-20 09:53:17 +01:00
Sönke Ludwig 3182160a9a Avoid bogus "A task cannot interrupt itself" assertion failure.
Calling Task.interrupt() on a task that is already finished, but ran on the same fiber would trigger an assertion failure instead of returning silently.
2020-11-19 16:06:49 +01:00
Sönke Ludwig a170973cfd
Merge pull request #234 from vibe-d/deprecation_fix
Avoid instantiating emplace(O) for class instances
2020-11-14 19:31:04 +01:00
Sönke Ludwig b160f80af6 Avoid instantiating emplace(O) for class instances.
Fixes a deprecation warning for ProxyStream.
2020-11-14 09:42:05 +01:00
Sönke Ludwig 65b921cc65
Merge pull request #233 from vibe-d/concurrent_pipe
Add a concurrent pipe() mode
2020-10-24 16:38:18 +02:00
Sönke Ludwig 131f7f5e54 Bump version to 1.11.0 2020-10-24 11:51:09 +02:00
Sönke Ludwig 4168d40b2b Update change log. 2020-10-24 11:51:09 +02:00
Sönke Ludwig 1ec93b5336 Fix test transition between different directory watchers. 2020-10-24 11:51:09 +02:00
Sönke Ludwig 2ea3a7ceb1 Refactor read loop to avoid code duplication. 2020-10-21 20:05:00 +02:00
Sönke Ludwig eb183d5ab2 Use concurrent pipe() in copyFile(). 2020-10-21 17:37:36 +02:00
Sönke Ludwig 730b42bf31 Add a test for pipe(). 2020-10-21 17:37:35 +02:00
Sönke Ludwig f3f60ee870 Implement a concurrent mode for pipe().
This maximizes throughput for typical disk I/O loads.
2020-10-21 17:37:33 +02:00
Sönke Ludwig a736481467 Update change log and bump version to 1.10.3. 2020-10-15 14:13:16 +02:00
Sönke Ludwig 97fdff2574
Merge pull request #232 from vibe-d/waitfordataex_fix
Fix waitForDataEx's return value for an open connection and a zero timeout
2020-10-15 14:03:21 +02:00
Sönke Ludwig ae6506289a Fix waitForDataEx's return value for an open connection and a zero timeout.
IOMode.once causes the read() to return with IOStatus.wouldBlock immediately, which previously resulted in erroneously reporting WaitForDataStatus.noModeData instead of timeout.

See vibe-d/vibe.d#2483
2020-10-15 13:13:15 +02:00
Sönke Ludwig 4357b32375
Merge pull request #230 from vibe-d/github-actions
Add initial GitHub actions
2020-09-21 10:51:23 +02:00
Sebastian Wilzbach 86e08b1334 Add initial GitHub actions + replace AppVeyor 2020-09-20 08:52:40 +02:00
Sönke Ludwig be0e3e033b Bump version to 1.10.2. 2020-09-19 00:07:58 +02:00
Sönke Ludwig ad1184cfa5 Update change log. 2020-09-18 23:20:29 +02:00
Leonid Kramer 483725f5eb
Merge pull request #228 from vibe-d/interfaceproxy_null
Fix InterfaceProxy to work with null values.
2020-09-18 23:04:02 +02:00
Leonid Kramer 5f0bac04f3
Merge pull request #227 from vibe-d/eventcore_fileio_cancel_workaround
Work around critical issue in eventcore's cancelRead/cancelWrite.
2020-09-18 22:58:34 +02:00