Commit graph

285 commits

Author SHA1 Message Date
Sönke Ludwig 03ffe70dc1 Revert to execute timer callbacks in tasks and add createLeanTimer instead.
Fixes #125.
2019-01-22 18:06:55 +01:00
Sönke Ludwig 1a87ee5b3f Make yieldLock() safe and nothrow. 2019-01-22 18:06:54 +01:00
Sönke Ludwig 857be9459e Improve convenience of the Channel API.
- allows all methods to be called on a `shared(Channel!T)` instance.
- `Channel` pre-defines the `buffer_size` argument to 100, matching `createChannel`
2019-01-22 10:50:46 +01:00
Sönke Ludwig 27ec5fe2d2 Bump version number. 2019-01-20 14:50:56 +01:00
Sönke Ludwig 3503001ec6 Add contract to Channel.consumeAll to force the input buffer to be empty. 2019-01-20 14:31:29 +01:00
The Dlang Bot c21e1aa06d
Merge pull request #25 from vibe-d/channels
Implement typed cross-task channels
merged-on-behalf-of: Leonid Kramer <l-kramer@users.noreply.github.com>
2019-01-20 13:51:36 +01:00
Sönke Ludwig 48908a7f15 Bump version number. 2019-01-20 13:26:44 +01:00
Sönke Ludwig 3be1de2fdb Refine the semantics of consumeAll. 2019-01-20 11:57:16 +01:00
Sönke Ludwig 568cdb112b
Merge pull request #116 from WebFreak001/fix-115
release ref on failing connectTCP
2019-01-19 15:06:39 +01:00
Sönke Ludwig 28260bd612 Use a robust check IP vs. host name check for resolveHost. Fixes #117. 2019-01-16 22:31:14 +01:00
Sönke Ludwig f31db98144 Add documentation, basic unit test, createChannel(), close() and tryConsumeOne(). 2019-01-14 22:16:45 +01:00
Sönke Ludwig 82936041e4 Add some more notes. 2019-01-14 20:42:31 +01:00
Sönke Ludwig bce39e512c Implement a simple thread-safe cross-task channel. 2019-01-14 20:42:31 +01:00
The Dlang Bot 8edca75696
Merge pull request #119 from vibe-d/issue-118-interruptible-task-mutex-use
Improve robustness of the sync module. Fixes #118.
merged-on-behalf-of: Leonid Kramer <l-kramer@users.noreply.github.com>
2019-01-14 20:21:04 +01:00
Sönke Ludwig 2f552ac408 Properly handle directory watcher creation failures. 2019-01-14 14:59:03 +01:00
Sönke Ludwig 9583df3c44 Preserve times and attributes in copyFile. 2019-01-14 14:59:02 +01:00
Sönke Ludwig dfd7d97225 Fix parameter documentation syntax. Fixes #103. 2019-01-14 10:22:13 +01:00
Sönke Ludwig cccf45cfea Add a motivational introduction to the sync module.
Especially mention the issues of using `core.sync.*`.
2019-01-14 10:22:13 +01:00
Sönke Ludwig 6c0bdf2976 Add documentation and unittest example to scopedMutexLock. 2019-01-14 10:22:12 +01:00
Sönke Ludwig fb64c07d3c Make scopedMutexLock work with InterruptibleTaskMutex. 2019-01-14 10:22:12 +01:00
Sönke Ludwig 452fa411c2 Avoid overload conflict when using TaskMutex together with InterruptibleTaskCondition. 2019-01-14 10:22:12 +01:00
Sönke Ludwig ffa5bd5c58 Add a trap to detect invalid uses of InterruptibleTaskMutex in conjunction with synchronized. 2019-01-14 10:22:12 +01:00
Sönke Ludwig c899798be7 Avoid blocking copy in moveFile. 2019-01-14 00:34:15 +01:00
WebFreak001 4d4401c31f Fix assert not compiling in releaseRef 2019-01-09 00:28:27 +01:00
WebFreak001 9d6b34c73a release ref on failing connectTCP
fix #115
2019-01-09 00:18:43 +01:00
Benjamin Schaaf 12a8825f86
Fix error message in FileStream.write 2019-01-07 10:26:16 +11:00
Sönke Ludwig e5ce1394b1 Bump version number. 2018-12-28 14:09:14 +01:00
The Dlang Bot e5d53249fc
Merge pull request #113 from vibe-d/file_truncate
Add FileStream.truncate
merged-on-behalf-of: Sönke Ludwig <s-ludwig@users.noreply.github.com>
2018-12-28 14:03:19 +01:00
Sönke Ludwig f35e8f1d69 Add FileStream.truncate. 2018-12-28 10:14:50 +01:00
Hiroki Noda a408aac808 Use monotonic clock for timeout 2018-12-24 06:22:53 +09:00
Sönke Ludwig 0d3338a16b
Merge pull request #111 from WebFreak001/fix-110
Make waitForData not assert fail on close fix #110
2018-12-20 10:14:08 +01:00
WebFreak001 bc3b319783 Fix potential crash if context is null on closed socket
If the other side closes the connection this might happen
Without this check the following m_context.readBuffer would segfault
2018-12-20 02:20:41 +01:00
WebFreak001 c8ab6ae2f8 Make waitForData not assert fail on close fix #110 2018-12-20 02:10:40 +01:00
Mathias L. Baumann e2834a245b UDP connect wrongly passes port as addr family to resolveHost 2018-12-08 10:14:59 +01:00
Sönke Ludwig 26b6190743 Bump version number. 2018-11-23 22:28:33 +01:00
Sönke Ludwig b5442b5efd Make sure that pending but unreferenced timers still invoke their callback. Fixes #104. 2018-11-23 15:52:18 +01:00
Sönke Ludwig aca672416c Fix host name conversion code for SyslogLogger.
See vibe-d/vibe.d#2220
2018-11-07 09:41:57 +01:00
Martin Nowak 277e998167 fix relying on implicit const conversion of JSONValue
- "key" in JSONValue returns const(JSONValue)*
- fromValue expected non-const JSONValue
- implicit conversion of const(JSONValue) to JSONValue to be fixed
  with https://github.com/dlang/phobos/pull/6716
2018-11-01 12:59:44 +01:00
Sönke Ludwig c3272f7d1f Fix assertion in SpinLock when called from a signal handler.
Since the signal handler can be called in any thread of the application, it may happen so in a non-D thread where Thread.getThis() returns null. This change works around this and also removes the need to call SpinLock.setup on thread startup.
2018-10-30 12:39:08 +01:00
Sönke Ludwig 8c4b147605 Bump version number. 2018-10-27 20:14:09 +02:00
Sönke Ludwig f5665aa7c1 Fix compilation on older DMD frontends. 2018-10-27 16:31:59 +02:00
Sönke Ludwig 78fef30310 Implement callback based timers without relying on a task. Fixes #86.
In the previous implementation, the callback tasks were starving as soon as the last external reference to a non-pending timer was given up.
2018-10-27 15:48:21 +02:00
Sönke Ludwig 6caff0b105 Fix synchronization and shutdown issues in TaskPool.
- terminate() would hang if called from a worker thread because it would attempt to self-join
- the handleWorkerTasks could miss signal emits, resulting in a hanging task queue or a missed termination signal
2018-10-27 00:42:06 +02:00
Sönke Ludwig 9a4217cd88
Merge pull request #95 from vibe-d/remove_task_pool_event_loop
Avoid starting an explicit event loop in worker threads.
2018-10-23 21:54:51 +02:00
Sönke Ludwig 849bca4855 Avoid starting an explicit event loop in worker threads.
This reduces the overhead of task pool threads slightly and simplifies stack traces in case of errors.
2018-10-23 11:27:28 +02:00
Sönke Ludwig eae11d3ba3 Fix deprecation warnings on DMD 2.082.0 2018-10-23 11:25:54 +02:00
Sönke Ludwig c4af4b2a02 Fix WindowsPath.bySegment of an empty path returning a bogus empty segment. 2018-10-01 21:54:29 +02:00
Sönke Ludwig 2480f6bb67 Allow switchToTask to be called within a yield lock.
Enables waking up other tasks from within a yield lock (executed after the yield lock is lifted).
2018-09-09 11:35:39 +02:00
Sönke Ludwig 897fee84ea Free resources associated with waitForDataAsync as early as possible.
Instead of letting the GC clean up at an undefined point in time.
2018-09-03 13:45:53 +02:00
Sönke Ludwig 0b638634c9 Fix waitForDataAsync compilation error for callbacks that have scoped destruction. 2018-09-03 12:35:05 +02:00