Commit graph

111 commits

Author SHA1 Message Date
Sönke Ludwig 080944b400 Bump version to 1.9.1. 2020-04-17 18:53:03 +02:00
Geod24 bccd494072 Replace 'body' with 'do' 2020-04-17 01:29:16 +09:00
Sönke Ludwig b6bedd63c0 Update version to 1.9.0. 2020-03-18 15:32:52 +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
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 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
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
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
Sönke Ludwig 04be22b00e Bump version number. 2019-09-17 19:37:13 +02:00
Sönke Ludwig 3dff74fc0f Bump version number. 2019-08-25 17:12:49 +02:00
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