Commit Graph

71 Commits (master)

Author SHA1 Message Date
Daniel Kolesa 81feac59d1 add separate protected and unprotected stack allocators, use unprotected by default 2017-03-08 02:16:24 +01:00
Daniel Kolesa 48d039aea0 initial support for stack allocator objects 2017-03-08 02:06:56 +01:00
Daniel Kolesa 7d0778cf0a kill coroutine stack from entrypoint instead of destructor 2017-03-08 01:43:41 +01:00
Daniel Kolesa 58206da3b4 use mmap to allocate stack on POSIX, VirtualAlloc on Windows 2017-03-07 22:39:17 +01:00
Daniel Kolesa 3145ebe0c9 move coroutine context stuff to a separate file 2017-03-07 21:29:12 +01:00
Daniel Kolesa e97e70b427 constructor cleanup, const correctness, swap fixes, explicit bool, comments 2017-03-07 17:39:40 +01:00
Daniel Kolesa 483ec9df3b only initialize the context with a valid function 2017-03-07 02:19:25 +01:00
Daniel Kolesa 573c001786 put coroutine_context in detail and inherit from it 2017-03-07 02:07:13 +01:00
Daniel Kolesa 248acbeac5 use p_func to check finished status (no separate bool) 2017-03-07 01:25:56 +01:00
Daniel Kolesa 7ba1f9265b make value-returning no-argument coroutines iterable 2017-03-06 19:01:17 +01:00
Daniel Kolesa 64d92743e4 only pass yield to coroutines, make them movable and swappable, improve examples 2017-03-06 18:38:50 +01:00
Daniel Kolesa 9a194343f3 operator bool on coroutine should be inverse 2017-03-06 02:09:52 +01:00
Daniel Kolesa a4e17e22c7 fix coroutine + initial proof of concept generator (bad impl) 2017-03-06 00:47:15 +01:00
Daniel Kolesa 1f946bff50 forwarding of coroutine args/results 2017-03-05 23:49:20 +01:00
Daniel Kolesa 34a434ab53 move helpers to coro_base 2017-03-05 23:07:00 +01:00
Daniel Kolesa 5c209872b5 fix narrowing 2017-03-05 21:56:41 +01:00
Daniel Kolesa ed514c28a6 specialize coroutines for zero args 2017-03-05 20:11:39 +01:00
Daniel Kolesa d369bb4b8a use generic arg so we can construct coroutines from lambdas using = 2017-03-05 19:50:25 +01:00
Daniel Kolesa 1bb2dffc63 return the arg directly from yield with single-arg coroutines 2017-03-05 19:45:26 +01:00
Daniel Kolesa 2a842ef9da reimplement coroutine using the new fcontext assembly 2017-03-05 16:48:44 +01:00
Daniel Kolesa 8ecaa338bc add initial coroutine module (slow ucontext_t, POSIX only, WiP) 2017-03-04 18:25:33 +01:00