36 Commits

Author SHA1 Message Date
Patrick Wuttke
e91184ec82 Fixed current loop not being reset on exceptions. 2025-08-30 00:25:16 +02:00
d0be5f7739 Fixed use-after-move in TaskLoop::addTaskImpl() and some minor compilation problems. 2025-07-10 02:16:29 +02:00
1d32530be7 Added allReady() and getAll() functions for futures and c_allDone() with tasks for tasks. 2025-07-01 18:19:38 +02:00
1cbd435fbf Added missing Signal constructor taking const-qualified member functions. 2025-06-25 00:45:40 +02:00
573c431dbd Lots of windows fixes and some more improvements. 2025-06-24 15:21:01 +02:00
a956560183 Made coroutines allocator-aware (let's hope this really works). 2025-06-23 00:23:50 +02:00
2fc03e4050 Made Signal allocator-aware. 2025-06-23 00:21:46 +02:00
ba23cb0c70 Made the lib work with -fno-exceptions (at least for now). 2025-03-02 14:35:37 +01:00
21b3b2c03a Allow calling Signal::emit() with arguments that aren't exactly the signal handlers types. 2025-02-14 22:39:01 +01:00
2af1b5edd5 Made Future::set() only callable on futures with void result to prevent futures that are ready but have no result. 2024-11-12 23:31:43 +01:00
9ba097fc2f Added support for completely disabling noexcept using MIJIN_TEST_NO_NOEXCEPT (for testing). 2024-08-29 00:01:23 +02:00
d73fa25ed8 Silenced some weird (very likely false-positive) clang-tidy warnings. 2024-08-18 12:24:37 +02:00
66e319fb0d Added missing <exception> include. 2024-08-18 09:58:49 +02:00
2e54844989 Use steady_clock instead of high_resolution_clock for sleeping. 2024-08-17 18:07:21 +02:00
251393ae48 Fixed new nodiscard attribute. 2024-06-27 19:18:43 +02:00
eccaa177ca Added nodiscard attribute to TaskBase. 2024-06-27 18:13:26 +02:00
b1fa99428e Fixed Windows/MSVC compilation. 2024-06-26 10:05:32 +02:00
b10f250945 Added simple (albeit in many cases suboptiomal) c_sleep() method for coroutines. 2024-06-23 12:19:57 +02:00
463f4ca19c Fixed some compiler errors. 2024-05-17 20:29:46 +02:00
faf4489b92 Added isLocked() to task mutex. 2023-12-18 17:53:40 +01:00
2668e69ae1 Added signal_token_t to make it easier to store tokens. 2023-12-17 02:36:24 +01:00
b692425f83 Added TaskMutex header. 2023-12-10 18:42:20 +01:00
0e877f4769 Added getActiveTasks() function to count how many tasks are running or suspended. 2023-12-07 17:14:45 +01:00
adbb4fd0d1 Disabled coroutine debug info by default as it is fucking expensive. 2023-11-24 22:01:08 +01:00
ba8c1ebe1e Moved the creation stack to the shared state so it is retrievable, added comparison operators to TaskHandle and added getCurrentTask() function to retrieve the handle of the current task. 2023-11-19 20:04:19 +01:00
803f1463dc Made the message queue iterable. 2023-11-19 20:03:24 +01:00
065181fc69 Also cancel sub-tasks (those that are awaited by this one) when cancelling a task. 2023-11-18 22:20:47 +01:00
5aecd20c56 Use our optional type for storing results of the future. 2023-11-16 23:38:53 +01:00
5eb7864928 Moved TaskCancelled out of impl namespace and removed errornous noexcept. 2023-11-16 00:36:24 +01:00
0b8772c952 Added (pretty limited) support for uncaught exceptions in coroutines. 2023-11-13 11:34:47 +01:00
463890cfcb Added Signal::connect() function that takes an object + function pointer. 2023-11-12 19:59:18 +01:00
ae5e73aa58 Fixed coroutine cleanup. 2023-11-11 01:37:59 +01:00
617e051943 Added validity check to task handles and fixed some clang-tidy warning in MIJIN_ASSERT. 2023-11-03 23:17:48 +01:00
89bb110116 Added cancelling (and some exception handling) for coroutines. 2023-11-03 00:48:13 +01:00
920e83d4da Update to LibConf system, added loading of dynamic libraries (only Linux for now) and some more fixes. 2023-05-31 23:41:22 +02:00
da781b87f2 intial commit 2023-05-29 14:51:44 +02:00