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
Sönke Ludwig
3b82d4adca
Fix InterfaceProxy to work with null values.
...
Previously caused crashes and opCast!bool to return true for null instances.
2020-09-18 10:10:26 +02:00
Sönke Ludwig
f5c6099656
Work around critical issue in eventcore's cancelRead/cancelWrite.
...
The file I/O versions of cancelRead and cancelWrite in eventcore currently do not reliably cancel the operation in a synchronous fashion, leading to continued buffer accesses after the cancellation call. In case of the Windows version, this also means that the OVERLAPPED structure can be illegally reused for the next operation, while the previous one hasn't been canceled, yet.
A solution to this issue may require a fundamental change in the file I/O API of eventcore, and the optimal design of that still needs to be worked out. For this reason, we simply avoid using the cancellation functions in vibe-core for now to avoid memory corruption issues. This does mean that interrupting a task that does file I/O won't work anymore.
2020-09-18 10:09:16 +02:00
Geod24
bc7521ed1f
Add release notes for v1.10.1
2020-08-31 18:18:52 +02:00
Geod24
9a685523f9
Add support for DMD 2.094 -preview=in switch
...
This will allow users to use -preview=in as soon as it's released.
2020-08-31 06:59:50 +02:00