Sönke Ludwig
a4e87237e4
Remove potentially blocking file I/O code (upgrade to eventcore 0.9.0).
...
- file and pipe closing are now asynchronous operations
- moveFile and removeFile are now executed in a worker thread
- requires eventcore ~>0.9.0
2020-05-17 15:10:01 +02:00
Sönke Ludwig
080944b400
Bump version to 1.9.1.
2020-04-17 18:53:03 +02:00
Sönke Ludwig
41f7357eb5
Merge pull request #188 from Geod24/body-do
...
Replace 'body' with 'do'
2020-04-17 12:10:16 +02:00
Geod24
bccd494072
Replace 'body' with 'do'
2020-04-17 01:29:16 +09:00
Sönke Ludwig
cc66180ad8
Ensure path relativeTo() is nothrow.
2020-04-16 09:52:58 +02:00
Sönke Ludwig
899a84d834
Fix SyslogLogger. Fixes #203 .
...
This was not working at all since the release of vibe-core due to dependencies on other parts of vibe.d. The unit test has now been moved out of the template class, so that it is actually run.
2020-04-10 18:13:35 +02:00
Sönke Ludwig
b6bedd63c0
Update version to 1.9.0.
2020-03-18 15:32:52 +01:00
Sönke Ludwig
cef4885a63
Update change log.
2020-03-18 15:32:26 +01:00
Sönke Ludwig
73367273b5
Fix behavior of TCPConnection.write when the connection gets closed half-way trough.
...
Should throw an exception in case of IOMode.all, but actually returned a partial result.
2020-03-18 12:36:08 +01:00
Sönke Ludwig
44f13592d3
Remove dead code.
2020-03-16 14:14:50 +01:00
Sönke Ludwig
1eebe7a9ce
Add TaskSwitchPriority to control the priority to use when transferring execution.
2020-03-15 10:54:35 +01:00
Sönke Ludwig
d07c2f02e6
Fix TaskQueue.insertBackPred.
2020-03-15 10:54:32 +01:00
Sönke Ludwig
280023dfc2
Avoid potential overflow for dynamic task priority.
2020-03-15 08:59:17 +01:00
The Dlang Bot
1f86470e4c
Merge pull request #196 from vibe-d/task_priorities
...
Implement priority based task scheduling.
merged-on-behalf-of: Leonid Kramer <l-kramer@users.noreply.github.com>
2020-03-15 08:00:42 +01:00
Sönke Ludwig
262b417794
Add TaskSettings overloads for runWorkerTaskDist(H).
2020-03-14 23:33:41 +01:00
Sönke Ludwig
6a2dfa468b
Implement priority based task scheduling.
...
1. Removes the marker task used by schedule() and instead limits the number of task resumptions to the initial length of the task queue
2. Assigns a static and a dynamic priority to each task. The dynamic priority starts with the same value as the static priority and gets incremented by the static priority each time the task gets overtaken by a higher priority task, eventually leading to the task becoming the highest priority (unless the static priority is zero). Tasks with a higher dynamic priority generally take precedence, unless the concurrency exceeds 10 scheduled tasks, in which case the front of the queue is scheduled in normal FIFO order.
2020-03-14 20:37:33 +01:00
Sönke Ludwig
0122e665db
Fix contract for Timer.rearm.
2020-03-14 19:47:29 +01:00
Sönke Ludwig
5010085340
Fix documentation of pipe().
2020-03-14 19:47:29 +01:00
Sönke Ludwig
6041347405
Fix deprecation warning.
2020-03-14 19:47:29 +01:00
Sönke Ludwig
8e24c4a204
Correct copyright holder.
...
rejectedsoftware e.K. doesn't exist anymore since mid-2019.
2020-01-27 19:20:52 +01:00
Sönke Ludwig
699f43c80c
Update change log and bump version to 1.8.1.
2019-12-17 10:37:28 +01:00
Geod24
9615ed1d5a
Fix documentation warning on parameter
2019-12-17 17:12:56 +09:00
Sönke Ludwig
4139cf746b
Bump version to 1.8.0.
2019-12-07 16:04:35 +01:00
Sönke Ludwig
eeabae4794
Bump version to 1.8.0-alpha.2
2019-10-25 22:58:51 +02:00
Leonid Kramer
930660fc05
Merge pull request #181 from vibe-d/path_improvements
...
Path improvements
2019-10-25 21:08:08 +02:00
Sönke Ludwig
f56fd7580c
Avoid reallocating the data in readFileUTF8 if the UTF encoding is valid.
...
Uses the immutable overload of sanitizeUTF8 to reuse the original buffer if possible.
2019-10-22 11:41:35 +02:00
Sönke Ludwig
07c7bb88a9
Make the range returned by bySegment2 a Voldemort type.
...
Declaring it as a public symbol just introduces API maintenance burden without a real benefit.
2019-10-22 11:30:54 +02:00
Sönke Ludwig
6985e8dcb4
Add GenericPath.byPrefix.
...
Allows successively iterating over ancestor paths in O(n) complexity and with no dynamic memory allocations.
2019-10-22 11:30:53 +02:00
Sönke Ludwig
81ba969fd6
Reduce log noise for worker tasks.
2019-10-22 11:30:31 +02:00
Sönke Ludwig
2bf660a529
Bump version to 1.8.0-alpha.1.
2019-09-27 17:37:43 +02:00
Sönke Ludwig
aae2c28ef6
Make sure that an uninitialized YieldLock does not decrement the lock counter.
...
Uninitialized YieldLock values can happen in various ways, dispite the default constructor being disabled. If any such value got destroyed, it would lead to a negative lock count. Since this is handled properly now, the default constructor is also enabled in this commit.
2019-09-27 15:09:06 +02:00
Leonid Kramer
24a83434e4
Merge pull request #179 from vibe-d/path_optimization
...
Add a nogc path segment API
2019-09-26 11:54:36 +02:00
Sönke Ludwig
645896bcfd
Use bySegment2 instead of bySegment for high-level functionality.
2019-09-19 15:33:00 +02:00
Sönke Ludwig
6ef53121ad
Add GenericPath.bySegment2 and .head2 as fully nogc alternatives.
2019-09-19 15:32:59 +02:00
Sönke Ludwig
32858b7aee
Rework the path segment encoding/decoding API.
...
- Deprecates Format.decodeSegment (returning a range of GemericPath.Segment) and added decodeSingleSegment instead, which returns a string instead.
- Adds Format.encodeSegment to encode a single path segment
2019-09-19 15:32:59 +02:00
Sönke Ludwig
5640516ba8
Remove SpinLock and use core.sync.mutex.Mutex instead.
...
The places that used it showed too much contention in load tests, so that the spin lock was more expensive that the regular OS mutex/futex.
2019-09-19 11:25:14 +02:00
Sönke Ludwig
04be22b00e
Bump version number.
2019-09-17 19:37:13 +02:00
Sönke Ludwig
db994eaa80
Fix compile error on old compiler versions
2019-09-17 15:22:41 +02:00
Geod24
e7294bb9bd
Clean up std.json deprecation
2019-09-03 01:35:58 +09:00
JinShil
eb4344653e
Replace hash_t
with size_t
2019-08-31 12:29:15 +09:00
Sönke Ludwig
3dff74fc0f
Bump version number.
2019-08-25 17:12:49 +02:00
Sönke Ludwig
d9e545bf60
Fix getFileInfo's exception handling and reduce overhead of the background work.
...
Instead of asyncWork, now uses a worker task directly and signals the finalization of the result using message passing. This avoids the roundtrip required to return the task handle, as well as the heap allocated result buffer of Future!T.
2019-08-25 12:02:08 +02:00
Sönke Ludwig
d7dfb6cd23
Bump version number.
2019-08-24 16:36:48 +02:00
Sönke Ludwig
ce1adf8c3b
Merge pull request #172 from vibe-d/async_file_operations
...
Avoid all blocking file operations outside of worker threads
2019-08-21 20:59:45 +02:00
Sönke Ludwig
a2f970b7b2
Merge pull request #165 from vibe-d/pure_parent_path
...
Make GenericPath.parentPath pure.
2019-08-21 19:26:00 +02:00
Sönke Ludwig
84907ddbe3
Merge pull request #168 from v1ne/fix-appending-to-file
...
FileStream: Adjust file offset when appending to a file
2019-08-21 19:25:17 +02:00
Sönke Ludwig
f6b97b04c3
Make GenericPath.parentPath pure.
2019-08-21 13:57:54 +02:00
Sönke Ludwig
e3a38b374e
Let all non-aio file system functions run in worker threads.
...
This avoids stalling the event loop in case of lengthy I/O (network shares, spinning up hard drives etc).
2019-08-21 13:34:00 +02:00
Sönke Ludwig
881e3da5f9
Make async marked safe if possible and add asyncWork.
...
asyncWork is the same as async, except that it guarantees that the computation happens in a worker thread.
2019-08-21 13:34:00 +02:00
Sönke Ludwig
4f5636dadf
Mark async/Future and runWorkerTaskH as safe.
2019-08-21 13:34:00 +02:00