Sönke Ludwig
d7dfb6cd23
Bump version number.
2019-08-24 16:36:48 +02:00
Sönke Ludwig
4f5636dadf
Mark async/Future and runWorkerTaskH as safe.
2019-08-21 13:34:00 +02:00
Sönke Ludwig
e5f45718f6
Bump version number.
2019-06-21 21:44:27 +02:00
Sönke Ludwig
79bb21c6a3
Bump version number.
2019-06-16 15:10:50 +02:00
Geod24
40f82b22e5
Remove useless imports to std.variant
2019-05-28 14:24:42 +09:00
Sönke Ludwig
c3832cbb8b
Bump version number.
2019-05-19 11:51:16 +02:00
Sönke Ludwig
e03caac035
Bump version number.
2019-03-26 15:37:30 +01:00
Sönke Ludwig
caf291dd22
Bump version number.
2019-03-10 16:00:30 +01:00
Leonid Kramer
f558ce6c3f
Merge pull request #139 from vibe-d/busy_loop_interleave
...
Fix proper interleaving of busy yield loops inside and outside of tasks.
2019-03-09 21:41:47 +01:00
Sönke Ludwig
cae9f28885
Fix proper interleaving of busy yield loops inside and outside of tasks.
2019-03-06 12:35:37 +01:00
Joseph Rushton Wakeling
d8e4013c92
Fix runApplication handling of unrecognized command-line args
...
`runApplication` takes an `args_out` parameter which, if non-null, is
supposed to be set to match unrecognized command-line args. However,
the parameter is never passed to `finalizeCommandLineOptions`, which
will therefore log an error and throw an exception if any command line
arguments are unrecognized.
This patch fixes the oversight, ensuring that `runApplication` will
correctly populate a non-null `args_out` parameter with unrecognized
command-line arguments, and not throw an exception in this case.
2019-02-22 16:33:01 +01:00
Sönke Ludwig
bfcf08def0
Bump version number.
2019-01-26 19:28:43 +01:00
Sönke Ludwig
a54fa6b7de
Implement runWorkerTaskDistH.
...
Variant of runWorkerTask that allows to get the handles of the created tasks.
2019-01-26 18:02:47 +01:00
Sönke Ludwig
1284858d2c
Avoid TLS overhead for TimerCallbackH and make it fully private.
2019-01-22 19:46:52 +01:00
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
27ec5fe2d2
Bump version number.
2019-01-20 14:50:56 +01:00
Sönke Ludwig
48908a7f15
Bump version number.
2019-01-20 13:26:44 +01:00
Sönke Ludwig
e5ce1394b1
Bump version number.
2018-12-28 14:09:14 +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
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
eae11d3ba3
Fix deprecation warnings on DMD 2.082.0
2018-10-23 11:25:54 +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
20558e4416
Update change log and bump version number
2018-07-09 09:20:55 +02:00
Sönke Ludwig
360f129381
Fix typo
2018-07-09 09:18:59 +02:00
Sönke Ludwig
ecb46db199
Bump version number.
2018-06-05 12:45:01 +02:00
Sönke Ludwig
61bfbbbac3
Merge pull request #81 from vibe-d/fix_no_loop_message_processing
...
Fix event processing when calling yield() outside of an event loop.
2018-06-05 12:44:12 +02:00
Sönke Ludwig
463f4e4efb
Disable graceful shutdown for SIGABRT on Windows.
...
Since this is meant specifically for killing the process in bad program states, invoking the normal event loop shutdown code is too risky.
2018-06-05 12:01:20 +02:00
Sönke Ludwig
ebd7cd7393
Fix event processing when calling yield() outside of an event loop.
...
The exit flag was erroneously set, disabling any event processing during yield() calls when not inside an event loop.
2018-06-05 11:37:58 +02:00
Sönke Ludwig
dfd3d2fd70
Bump version number
2018-04-08 17:58:16 +02:00
Sönke Ludwig
fd92a7f555
Fix Task.running and Task.yield directly after runTask/yieldLock.
...
The status of the task was erroneously reported as not running until the task was actually executed for the first time (which only happens after the yield lock has been lifted).
2018-04-08 01:30:43 +02:00
Sönke Ludwig
2006ace251
Bump version number
2018-03-18 21:36:23 +01:00
Sönke Ludwig
2c63aa5c5c
Allow destructors to run in foreign threads. Fixes #69 .
...
This change modifies destructors to anticipate that they can be called form a foreign thread if the GC is involved. The actual release of the reference will then happen deferred in the original thread.
2018-03-16 18:06:53 +01:00
Sönke Ludwig
eb3620056f
Ensure async lambdas are templates to fix LDC linker errors. Fixes #65 .
...
If the lambda is a concrete function, two different versions will end up for it in the final binary on macOS when compiled with LDC. Using argument inference works around that issue.
2018-03-08 14:24:22 +01:00
Sönke Ludwig
66c9aeea57
Don't exit event loop prematurely. Fixes #66 .
...
Idle processing needs to check whether there are still tasks scheduled to be resumed before setting the exit flag when there are no more waiters (I/O etc.).
2018-03-06 23:41:56 +01:00
Sönke Ludwig
595beb2c60
Bump version number.
2018-02-26 20:40:28 +01:00
Sönke Ludwig
d2146e3881
Fix shutdown of the worker thread pool.
...
Shuts down the pool before terminating the threads to avoid accessing an event thread waiter slot that is not associated with a valid eventcore driver anymore.
2018-02-22 20:10:08 +01:00
Sönke Ludwig
1ed1c85f76
Use std.parallelism.totalCPUs to implement logicalProcessorCount.
...
See vibe-d/vibe.d#2008 .
2018-01-10 18:28:26 +01:00
Sönke Ludwig
8c68a4aeef
Bump version number.
2017-11-17 11:56:59 +01:00
Sönke Ludwig
9fe9783443
Convert Waitable from struct to pure template to avoid heap closures.
...
Also fixes a case where ThreadLocalWaiter.emitSingle overlaps a call to .emit.
2017-09-27 16:41:11 +02:00
Sönke Ludwig
a93b6e1cb1
Move log message to print before shutdown to avoid potential mixup with other log messages during shutdown.
2017-09-21 14:35:53 +02:00
Sönke Ludwig
a5628230c1
Fix setupWorkerThreads to actually use the provided thread count. See #35 .
2017-09-21 13:40:00 +02:00
Sönke Ludwig
dd05676c4e
Fix workerThreadCount to return the actual number of threads in the default worker pool. Fixes #35 .
2017-09-21 13:39:05 +02:00
Sönke Ludwig
cf914d8827
Update version.
2017-09-05 16:05:06 +02:00
Sönke Ludwig
1ef8d5206f
Fix handling of the "periodic" argument to the setTimer compatibility overload.
2017-09-03 15:46:50 +02:00
Sönke Ludwig
544157c065
Fix return value for FileDescriptorEvent.wait.
2017-08-14 14:27:09 +02:00