Commit graph

117 commits

Author SHA1 Message Date
Sönke Ludwig be0e3e033b Bump version to 1.10.2. 2020-09-19 00:07:58 +02:00
Geod24 bc7521ed1f Add release notes for v1.10.1 2020-08-31 18:18:52 +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 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 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