q66
|
8ba1c83609
|
predefined funcs for common argparse actions
|
2017-05-15 21:10:41 +02:00 |
|
q66
|
ec426a30a1
|
argparse: action callback support, help string support
|
2017-05-15 19:55:26 +02:00 |
|
q66
|
5373e3405c
|
support for argparse action callbacks and value retrieval
|
2017-05-15 19:18:25 +02:00 |
|
q66
|
922da4a808
|
split up arg classes better
|
2017-05-15 18:49:59 +02:00 |
|
q66
|
d1b69963cb
|
basic help printing for argparse and other improvements
|
2017-05-14 16:24:19 +02:00 |
|
q66
|
c19d45b21a
|
add initial skeleton for argument parser
|
2017-05-13 22:24:26 +02:00 |
|
q66
|
45c8450209
|
envvar support in subprocess
|
2017-05-13 18:36:40 +02:00 |
|
q66
|
2fc506d1bb
|
fewer temporary allocations in subprocess
|
2017-05-13 17:02:39 +02:00 |
|
q66
|
06687881c1
|
implement subprocess detach and validity checks
|
2017-05-13 00:00:44 +02:00 |
|
q66
|
0925ff3350
|
clean up platform checks
|
2017-05-12 00:05:18 +02:00 |
|
q66
|
005485f6a6
|
rename to subprocess_stream/error
|
2017-05-11 23:57:04 +02:00 |
|
q66
|
5fc674e4d3
|
allow split_args to take a lambda
|
2017-05-11 23:49:51 +02:00 |
|
q66
|
d4edafa350
|
ref-qualified appender get() method
|
2017-05-11 23:31:15 +02:00 |
|
q66
|
cc18d2b736
|
add subprocess constructors that open as part of the construction
|
2017-05-11 19:36:17 +02:00 |
|
q66
|
10caf39244
|
split win32 and posix code of context_stack and process into separate files
|
2017-05-10 00:30:23 +02:00 |
|
q66
|
469c85639a
|
some more platform checks
|
2017-05-10 00:02:37 +02:00 |
|
q66
|
9e429189d7
|
more foolproof subprocess interface
|
2017-05-09 23:58:20 +02:00 |
|
q66
|
af951a243c
|
use strings for subprocess errors
|
2017-05-09 20:33:45 +02:00 |
|
q66
|
6b228ee6a8
|
documentation for subprocess
|
2017-05-08 21:23:15 +02:00 |
|
q66
|
ea7f4062b7
|
hide platform-specific data from subprocess
|
2017-05-08 20:32:36 +02:00 |
|
q66
|
4966830d33
|
rename process_info to subprocess
|
2017-05-08 18:42:30 +02:00 |
|
q66
|
4022897195
|
make sure process exec never leaks file descriptors
|
2017-05-08 17:10:09 +02:00 |
|
q66
|
ce1b94624a
|
rename process_pipe
|
2017-05-08 04:13:07 +02:00 |
|
q66
|
61fcfeee2e
|
slight process api cleanup
|
2017-05-08 04:09:47 +02:00 |
|
q66
|
1ecf921f1a
|
initial impl of process calling api (posix only atm)
|
2017-05-08 03:51:45 +02:00 |
|
q66
|
44d370183c
|
custom close func support for filestreams
|
2017-05-08 01:07:32 +02:00 |
|
q66
|
f01992c952
|
add command line splitting api (posix, windows) and use it from build
|
2017-05-07 21:17:13 +02:00 |
|
q66
|
a191164700
|
make global constexpr variables inline
|
2017-05-06 15:09:44 +02:00 |
|
q66
|
fc6935151d
|
more build cleanups and emplace for channels
|
2017-05-05 02:00:47 +02:00 |
|
q66
|
9be0ad2a0e
|
simplify example a bit more
|
2017-05-03 02:31:26 +02:00 |
|
q66
|
d6a2a3f07c
|
include all examples in generated docs
|
2017-05-03 02:14:27 +02:00 |
|
q66
|
0ae9838b83
|
doc fix
|
2017-05-03 01:52:28 +02:00 |
|
q66
|
9f593eebd1
|
tids are non-copyable, only movable
|
2017-05-02 23:49:56 +02:00 |
|
q66
|
2c62b82ec4
|
future-like objects representing tasks in concurrency
|
2017-05-02 21:42:31 +02:00 |
|
q66
|
94814dc61e
|
remove internal/win32.hh and put environ stuff into a source file
|
2017-05-02 00:15:01 +02:00 |
|
q66
|
19badf6140
|
threaded build.cc
|
2017-04-30 20:16:49 +02:00 |
|
q66
|
c1e79a4c75
|
unit tester fixes
|
2017-04-28 01:54:28 +02:00 |
|
q66
|
69890906fd
|
move test module to the beginning of the file
|
2017-04-27 19:06:57 +02:00 |
|
q66
|
37def859e5
|
catch all exceptions in unit tester
|
2017-04-26 23:12:59 +02:00 |
|
q66
|
27bc7be245
|
cleanup and document unit test header
|
2017-04-25 18:48:10 +02:00 |
|
q66
|
b885e57fdb
|
improved threaded test runner
|
2017-04-24 18:18:10 +02:00 |
|
q66
|
d359e46818
|
add some basic unit test infra to allow testing together with impl
|
2017-04-23 17:57:01 +02:00 |
|
q66
|
cc8452e265
|
remove make_ range helpers for containers (use iter_begin/end)
|
2017-04-23 15:30:51 +02:00 |
|
q66
|
ef147c538c
|
add complete input iterator type for any range
|
2017-04-22 17:12:20 +02:00 |
|
q66
|
b1f207bd3b
|
hide appender_range definition
|
2017-04-17 17:07:24 +02:00 |
|
q66
|
c0421b721b
|
no need to create generator iterator from generator ranges
|
2017-04-17 16:17:18 +02:00 |
|
q66
|
a743f7b755
|
no reference/size_type for output ranges
|
2017-04-16 17:41:50 +02:00 |
|
q66
|
1619dac782
|
remove range difference type (unused)
|
2017-04-16 17:23:09 +02:00 |
|
q66
|
71aa6ff70b
|
better template arg names for algorithm documentation
|
2017-04-15 16:14:50 +02:00 |
|
q66
|
cd3ccba757
|
more elaborate range element swap tests
|
2017-04-15 14:20:01 +02:00 |
|
q66
|
45b5eb2c0e
|
Fully document algorithm.hh
|
2017-04-14 19:10:38 +02:00 |
|
q66
|
6cdf31d42b
|
doc cleanups
|
2017-04-14 18:04:17 +02:00 |
|
q66
|
dd0c747488
|
more algorithm.hh documentation
|
2017-04-14 17:30:21 +02:00 |
|
q66
|
3de75431dd
|
more algorithm docs
|
2017-04-14 16:57:02 +02:00 |
|
q66
|
dbbef8c7ac
|
add a range trait to check swappability for range elements
|
2017-04-14 15:54:15 +02:00 |
|
q66
|
c6697c9ff4
|
document part of algorithm.hh
|
2017-04-14 15:03:54 +02:00 |
|
q66
|
c1e17617cb
|
hide generator range too
|
2017-04-14 03:45:06 +02:00 |
|
q66
|
313f637e9b
|
hide most wrapper ranges in detail namespace
|
2017-04-14 03:35:30 +02:00 |
|
q66
|
09c3c02c33
|
doc cleanups
|
2017-04-12 19:12:09 +02:00 |
|
q66
|
220f9ee374
|
remove explicit copy/move ctors
|
2017-04-12 00:45:02 +02:00 |
|
q66
|
ce5c20a973
|
simplify chainable range algos
|
2017-04-12 00:07:21 +02:00 |
|
q66
|
9d1c739956
|
document range.hh
|
2017-04-11 21:32:53 +02:00 |
|
q66
|
fb02bd2cb9
|
string.hh documentation + noexcept
|
2017-04-10 19:43:44 +02:00 |
|
q66
|
1525edf3d7
|
type/include cleanup
|
2017-04-09 16:44:45 +02:00 |
|
q66
|
a913f7beca
|
document io.hh
|
2017-04-09 16:09:54 +02:00 |
|
q66
|
2b74cd170f
|
document stream.hh
|
2017-04-08 18:03:02 +02:00 |
|
q66
|
572620b10f
|
channel api improvements
|
2017-04-07 19:28:19 +02:00 |
|
q66
|
62676f4222
|
rename octastd to libostd
|
2017-04-06 20:14:52 +02:00 |
|
q66
|
36332dff40
|
document environ and filesystem
|
2017-04-05 20:53:14 +02:00 |
|
q66
|
480b7a56a4
|
more documentation
|
2017-04-04 19:29:15 +02:00 |
|
q66
|
9f35909660
|
fixes in streams
|
2017-04-04 01:06:55 +02:00 |
|
q66
|
4a7baa40a0
|
remove types.hh
|
2017-04-04 00:30:07 +02:00 |
|
q66
|
3b7f54e64c
|
virtual destructor for scheduler
|
2017-04-03 18:20:43 +02:00 |
|
q66
|
b1c9a0d196
|
more doc fixes
|
2017-04-03 18:17:47 +02:00 |
|
q66
|
08bd63d773
|
doc cleanups
|
2017-04-03 18:11:24 +02:00 |
|
q66
|
a4523027c2
|
format doc fixes
|
2017-04-03 17:53:41 +02:00 |
|
q66
|
d4edd42596
|
detailed docs for format module
|
2017-04-02 18:24:30 +02:00 |
|
q66
|
6d0c0a91f4
|
document context_stack.hh
|
2017-04-02 15:11:22 +02:00 |
|
q66
|
f2a78ad589
|
guaranteed single-argument slice
|
2017-04-01 16:49:38 +02:00 |
|
q66
|
fe4d7a553a
|
remove pop_front_n/pop_back_n from direct definition
|
2017-04-01 01:07:30 +02:00 |
|
q66
|
d99768de96
|
remove equals_ stuff
|
2017-03-31 03:39:28 +02:00 |
|
q66
|
dc7c124069
|
remove distance_ stuff
|
2017-03-31 03:36:40 +02:00 |
|
q66
|
8f70b60484
|
remove range push_ stuff
|
2017-03-31 03:34:35 +02:00 |
|
q66
|
6ddb0f1b17
|
remove the range half stuff for now
|
2017-03-31 03:28:18 +02:00 |
|
q66
|
1bd12fda04
|
use @brief
|
2017-03-30 00:38:43 +02:00 |
|
q66
|
d5f2f7f6b7
|
document generic_condvar
|
2017-03-30 00:36:51 +02:00 |
|
q66
|
90af651f24
|
document thread pool
|
2017-03-29 20:41:53 +02:00 |
|
q66
|
32110bcb9f
|
simplify range-for-only iterators using relaxed c++17 rules
|
2017-03-28 23:58:44 +02:00 |
|
q66
|
049c4b8c47
|
document coroutines
|
2017-03-28 22:21:38 +02:00 |
|
q66
|
94915ee5fc
|
merge coroutine context into coroutine.hh
|
2017-03-28 18:59:16 +02:00 |
|
q66
|
ca40fb1e0c
|
document concurrency
|
2017-03-27 21:49:55 +02:00 |
|
q66
|
cca5a12755
|
some initial documentation
|
2017-03-27 18:51:50 +02:00 |
|
q66
|
b86b7f9b29
|
allow setting the thread count for coroutine scheduler
|
2017-03-26 14:38:57 +02:00 |
|
q66
|
cdf3875b81
|
custom stack allocator support for start where available
|
2017-03-25 17:52:11 +01:00 |
|
q66
|
b02521ac19
|
only lock for stack manipulation with potentially unsafe allocators
|
2017-03-25 15:13:21 +01:00 |
|
q66
|
9fc3d70fe3
|
lock when allocating/deallocating/reserving stacks in a threaded env
|
2017-03-25 15:09:53 +01:00 |
|
q66
|
ed9f7c8949
|
add wrapper methods to reserve more stacks to existing schedulers
|
2017-03-25 15:04:28 +01:00 |
|
q66
|
b1d95faa41
|
make it possible to provide custom stack allocator types to schedulers
|
2017-03-25 15:01:14 +01:00 |
|
q66
|
f93b08a924
|
implement stack pool's interface on regular stack allocators
|
2017-03-25 14:50:16 +01:00 |
|
q66
|
1826511187
|
make it possible to allocate coroutines/generators with scheduler
|
2017-03-25 14:22:52 +01:00 |
|
q66
|
73c4dd6cbf
|
yields are noexcept
|
2017-03-24 15:56:16 +01:00 |
|
q66
|
c1e0ae56ac
|
prevent starting of another scheduler if one is already running
|
2017-03-24 15:52:40 +01:00 |
|
q66
|
f79236e94f
|
make full spawn/make_channel methods on base scheduler
|
2017-03-24 15:31:41 +01:00 |
|
q66
|
a1974ddf45
|
clean up the helper funcs
|
2017-03-24 15:24:07 +01:00 |
|
q66
|
c96d64e5ba
|
remove the scheduler iface nonsense (just make a virtual base)
|
2017-03-24 15:18:41 +01:00 |
|
q66
|
a4a524b29d
|
remove the _in suffixes (not actually necessary)
|
2017-03-24 14:25:13 +01:00 |
|
q66
|
9ab5f03612
|
remove template arg
|
2017-03-23 17:52:14 +01:00 |
|
q66
|
a04db12d49
|
dispatch directly from start when using bscs
|
2017-03-23 15:25:23 +01:00 |
|
q66
|
023af03361
|
spawn/make_channel/yield without explicitly specifying scheduler
|
2017-03-23 11:35:23 +01:00 |
|
q66
|
147b8d8042
|
non-template spawn
|
2017-03-23 10:56:21 +01:00 |
|
q66
|
d73ad08e87
|
make channels outside of scheduler
|
2017-03-23 10:41:13 +01:00 |
|
q66
|
47145f0431
|
make the generic condvar public
|
2017-03-23 10:25:24 +01:00 |
|
q66
|
45e65d7ec7
|
unified single-type interface for channels
|
2017-03-23 03:17:09 +01:00 |
|
q66
|
0e24dcd1c4
|
nested coroutine example + use stackpool for dispatcher in bscs
|
2017-03-23 00:40:42 +01:00 |
|
q66
|
422a65cade
|
actually free coroutine stacks in dtor (more predictable and safer)
|
2017-03-22 22:38:48 +01:00 |
|
q66
|
1351ac14f6
|
fix lockups when a condvar signals while a task is being blocked
|
2017-03-22 20:01:37 +01:00 |
|
q66
|
66758fa1df
|
only put task to the waitlist after it's yielded
|
2017-03-22 19:00:36 +01:00 |
|
q66
|
cd5bc965bd
|
use csched_task for both coroutine schedulers
|
2017-03-22 18:44:06 +01:00 |
|
q66
|
18cfe5119f
|
track current task for coroutine scheduler separately
|
2017-03-22 18:23:29 +01:00 |
|
q66
|
bffc917f46
|
use a custom coroutine type for tasks
|
2017-03-22 17:58:34 +01:00 |
|
q66
|
2537d955d1
|
fixes, bigger stack for main task, take spawn funcs by value
|
2017-03-22 17:32:58 +01:00 |
|
q66
|
c1a1c4a1ac
|
fix issues with coroutine scheduler threads locking up
|
2017-03-21 19:49:06 +01:00 |
|
q66
|
307123fd35
|
revert the threadpool split (wasn't used in the end)
|
2017-03-21 00:29:38 +01:00 |
|
q66
|
c120f49634
|
implement an M:N thread/coroutine scheduler
|
2017-03-21 00:28:38 +01:00 |
|
q66
|
a080a17d00
|
separate thread pool into two structures
the internal one will also be used in parallel coroutine scheduler
|
2017-03-20 18:42:54 +01:00 |
|
q66
|
367d2b8b31
|
lightweight backing for thread_pool tasks (no shared_ptr)
|
2017-03-20 04:12:44 +01:00 |
|
q66
|
c1c68fb339
|
always use packaged_task for thread_pool push
|
2017-03-20 03:11:59 +01:00 |
|
q66
|
e50a86f339
|
it's not needed/desirable to hold onto the lock while notifying
|
2017-03-20 02:44:38 +01:00 |
|
q66
|
23652409f6
|
use lock_guard where possible
|
2017-03-20 02:35:50 +01:00 |
|
q66
|
e7855faeb1
|
add a way to reserve more stacks in stack_pool
|
2017-03-20 02:12:49 +01:00 |
|
q66
|
5e2891c806
|
make dispatcher a coroutine (that way main can do its thing)
|
2017-03-19 23:36:29 +01:00 |
|
q66
|
cef3c96bdb
|
use stack pool for coroutine scheduler
|
2017-03-19 20:02:09 +01:00 |
|
q66
|
d35e8b6341
|
channel api cleanup
|
2017-03-19 19:35:00 +01:00 |
|
q66
|
94d72b693e
|
remove split stack support (not portable or available on Windows)
|
2017-03-19 19:11:54 +01:00 |
|
q66
|
c123e98178
|
some universal funcs for working with schedulers
|
2017-03-19 18:12:08 +01:00 |
|
q66
|
9a9466e943
|
make channels copyable (referring to a shared state)
|
2017-03-19 16:23:00 +01:00 |
|
q66
|
9ad7fe76c4
|
add a simple coroutine scheduler that multiplexes tasks onto a single thread
|
2017-03-19 14:11:23 +01:00 |
|
q66
|
9f6d8da9db
|
allow return of value from scheduler start
|
2017-03-18 20:04:22 +01:00 |
|
q66
|
f07eefaf5a
|
thread_pool push result type fix
|
2017-03-18 20:02:03 +01:00 |
|
q66
|
795234c476
|
do the same with the returning version
|
2017-03-18 18:53:57 +01:00 |
|
q66
|
3462703b3a
|
only bind when args are passed
|
2017-03-18 18:50:23 +01:00 |
|
q66
|
35cda8872e
|
add a thread pool impl
|
2017-03-18 18:34:13 +01:00 |
|
q66
|
b4b7224dd0
|
initial skeleton for concurrency module
|
2017-03-18 01:05:10 +01:00 |
|
q66
|
0da22e777d
|
add a way to retrieve the current coroutine context
|
2017-03-17 03:04:15 +01:00 |
|
q66
|
06fbdc7419
|
remove coroutine_type, but keep public context
|
2017-03-17 02:46:24 +01:00 |
|
q66
|
959f319318
|
type inspection support on coroutines (with context as common base type)
|
2017-03-17 02:38:37 +01:00 |
|
q66
|
75e4ac1cb7
|
unnecessary template keyword
|
2017-03-17 02:16:06 +01:00 |
|
q66
|
043e38601f
|
instantiate yielder at point of func call
|
2017-03-17 01:14:56 +01:00 |
|
q66
|
f8b7275d5f
|
get rid of some index sequences
|
2017-03-17 01:11:30 +01:00 |
|
q66
|
a30e0ae639
|
move p_func into p_stor
|
2017-03-17 01:02:33 +01:00 |
|
q66
|
58a11a3415
|
make storage for args/result a standalone object
|
2017-03-17 00:48:11 +01:00 |
|
q66
|
23493c49af
|
do not decay; breaks const type inputs
|
2017-03-16 23:40:00 +01:00 |
|
q66
|
0a0fe27317
|
better generator yield/value storage semantics
|
2017-03-16 23:25:59 +01:00 |
|
q66
|
f4d3382617
|
allow custom condition variable types in channels
|
2017-03-16 01:16:03 +01:00 |
|
q66
|
ce155190e0
|
do not store the allocator/stack pointer directly, also call stack allocator dtor
|
2017-03-15 01:19:01 +01:00 |
|
q66
|
78d6a23ad3
|
align the stack pointer by 16 bytes
|
2017-03-15 00:59:26 +01:00 |
|
q66
|
bdb95567e4
|
implement a stack pool (allocates a chunk of stacks, gives out as requested)
|
2017-03-14 19:34:05 +01:00 |
|
q66
|
5e956ad0ce
|
remove include
|
2017-03-14 01:48:21 +01:00 |
|
q66
|
783057a3a3
|
add initial basic implementation for channels
|
2017-03-14 01:46:58 +01:00 |
|
q66
|
cf568c6f30
|
get rid of arg_wrapper, use lightweight storage for results
|
2017-03-13 20:18:35 +01:00 |
|
q66
|
64380bda53
|
use pointers to store coro args with perfect forwarding (guaranteed to be alive until resume return)
|
2017-03-13 19:32:56 +01:00 |
|
q66
|
c89953c11f
|
coro args/results don't need to be default constructible
|
2017-03-13 19:01:44 +01:00 |
|
q66
|
ea9ac2e5c6
|
add the same iterators to generator_range
|
2017-03-13 18:50:44 +01:00 |
|
q66
|
b63729641b
|
auto unwind in coroutine_context (no manual dtor), clean up generator
|
2017-03-13 17:29:48 +01:00 |
|
q66
|
c2b82771f9
|
hide internal coroutine_context funcs from the rest
|
2017-03-12 16:58:33 +01:00 |
|
q66
|
f1341b913c
|
unify context_call between coroutines and generators
|
2017-03-12 16:54:49 +01:00 |
|
q66
|
de45dd2e80
|
do stacksize clamp in ctor
|
2017-03-11 18:41:03 +01:00 |
|
q66
|
b2a71d773d
|
stack cleanups
|
2017-03-11 18:39:46 +01:00 |
|
q66
|
c07f7d5ddc
|
correct noexcept in coroutine.hh
|
2017-03-11 18:30:08 +01:00 |
|
q66
|
88e6fe3906
|
revert the stack freeing method (can be achieved via stack allocator)
|
2017-03-11 18:24:55 +01:00 |
|
q66
|
20f57dad9b
|
dealloc stacks in destructor (allows stack reuse)
|
2017-03-11 17:57:04 +01:00 |
|
q66
|
0185fa7c12
|
coroutine fixes/cleanups, remove INIT state (can be checked better)
|
2017-03-11 17:23:50 +01:00 |
|
q66
|
8c6e7d8bf7
|
add a generic way to get an yielder for a coroutine/generator
|
2017-03-11 14:51:55 +01:00 |
|
q66
|
64e699a2d2
|
implement more compares to make range halves conformant random/bidirectional iterators
|
2017-03-11 14:24:41 +01:00 |
|
q66
|
9c9221822a
|
directly iterable generators
|
2017-03-11 14:16:47 +01:00 |
|
q66
|
058efff580
|
coroutine cleanups
|
2017-03-11 03:53:41 +01:00 |
|
q66
|
2cf818a67b
|
make generators autostart
|
2017-03-11 02:17:59 +01:00 |
|
q66
|
935e1bc337
|
yielder revamp, separate generators without having to return
|
2017-03-11 02:12:43 +01:00 |
|
q66
|
b86df5c016
|
move over to standard filesystem module (from std::experimental or std)
|
2017-03-10 18:31:34 +01:00 |
|
q66
|
52da0ab7ae
|
windows fixes
|
2017-03-10 03:05:05 +01:00 |
|
q66
|
afd086b2a0
|
move some more bits into impl files
|
2017-03-09 19:21:01 +01:00 |
|
q66
|
5fafcdf954
|
move the stack alloc impl bits into a source file
|
2017-03-09 01:00:47 +01:00 |
|
q66
|
fb592f8c2c
|
shove the stack alloc stuff into detail:: (for potential reuse elsewhere)
|
2017-03-09 00:25:51 +01:00 |
|
q66
|
8e97f7fdfd
|
separate stack stuff into its own file, add support for segmented stacks on POSIX+gcc/clang
|
2017-03-08 18:11:39 +01:00 |
|
q66
|
81feac59d1
|
add separate protected and unprotected stack allocators, use unprotected by default
|
2017-03-08 02:16:24 +01:00 |
|
q66
|
48d039aea0
|
initial support for stack allocator objects
|
2017-03-08 02:06:56 +01:00 |
|
q66
|
7d0778cf0a
|
kill coroutine stack from entrypoint instead of destructor
|
2017-03-08 01:43:41 +01:00 |
|
q66
|
1d5c98f830
|
add valgrind support to coroutine code
|
2017-03-08 00:52:31 +01:00 |
|
q66
|
4987fd568d
|
windows typo fix
|
2017-03-07 22:55:05 +01:00 |
|
q66
|
c526f12b81
|
use malloc on systems without MAP_ANON/ANONYMOUS (they're not in POSIX)
|
2017-03-07 22:48:44 +01:00 |
|
q66
|
58206da3b4
|
use mmap to allocate stack on POSIX, VirtualAlloc on Windows
|
2017-03-07 22:39:17 +01:00 |
|
q66
|
661393f9c5
|
some initial stack alloc/free funcs
|
2017-03-07 21:53:16 +01:00 |
|
q66
|
3145ebe0c9
|
move coroutine context stuff to a separate file
|
2017-03-07 21:29:12 +01:00 |
|
q66
|
e97e70b427
|
constructor cleanup, const correctness, swap fixes, explicit bool, comments
|
2017-03-07 17:39:40 +01:00 |
|
q66
|
483ec9df3b
|
only initialize the context with a valid function
|
2017-03-07 02:19:25 +01:00 |
|
q66
|
573c001786
|
put coroutine_context in detail and inherit from it
|
2017-03-07 02:07:13 +01:00 |
|
q66
|
248acbeac5
|
use p_func to check finished status (no separate bool)
|
2017-03-07 01:25:56 +01:00 |
|
q66
|
7ba1f9265b
|
make value-returning no-argument coroutines iterable
|
2017-03-06 19:01:17 +01:00 |
|
q66
|
64d92743e4
|
only pass yield to coroutines, make them movable and swappable, improve examples
|
2017-03-06 18:38:50 +01:00 |
|
q66
|
9a194343f3
|
operator bool on coroutine should be inverse
|
2017-03-06 02:09:52 +01:00 |
|