Commit graph

409 commits

Author SHA1 Message Date
Sönke Ludwig
ba6c058148 Add some more VibeTaskLog logging. 2020-12-10 09:22:38 +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
958856f6f1 Bump version to 1.11.1 2020-11-25 00:30:34 +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
131f7f5e54 Bump version to 1.11.0 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
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
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
be0e3e033b Bump version to 1.10.2. 2020-09-19 00:07:58 +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
Geod24
258342163f Bump version and add changelog for v1.10.0 2020-08-24 05:17:59 +02:00
Geod24
bd8c2c6e90 Use logException consistently and use logDiagnostic
Many places around were re-inventing logException with varying level of success.
In addition, the full error is now printed as a diagnostic instead of debug.
This is more in line with the description of `LogLevel.diagnostic`
("Extended user information (e.g. for more detailed error information)"),
as opposed to the one of `LogLevel.debug_`
("Developer information useful for algorithm debugging").
2020-08-24 05:17:59 +02:00
Geod24
f3accb40d5 Replace compile-time logging arguments file / line with runtime one
Since DMD v2.079.0 it is possible to put default, always-used default parameters
after variadic arguments (as long as IFTI is used).
This way we can move all the compile-time arguments, which would always trigger
a template instantiation, to runtime arguments, and re-enable module and function.
2020-08-24 05:17:59 +02:00
Steven Dwy
467c6a0996 resolveHost: Check expected address family on returned address
The code as is never checks the requested address family when doing a DNS query,
so resolving an IPv6 only host with AddressFamily.INET would still return an IPv6.
2020-08-21 07:19:39 +02:00
Andrej Mitrovic
f2c6cea071 Add optional timeout parameter to resolveHost
This will be useful in e.g. the client,
which uses connection timeouts but does not use
any timeout for resolving the host as of yet.
2020-08-19 13:47:34 +09:00
Geod24
b417214e32 Bump version and add changelog for v1.9.3 2020-08-03 02:34:08 +02:00
Sönke Ludwig
b1a35a6241 Bump version. 2020-05-28 21:57:45 +02:00
Sönke Ludwig
4344333946 Add error handling for process creation. 2020-05-18 16:44:11 +02:00
Sönke Ludwig
fb27359214 Fix indentation. 2020-05-18 16:42:28 +02:00
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