Results 70 issues of Lewis Baker

See https://github.com/toby-allsopp/coroutine_monad for inspiration. ```c++ std::optional parse_int(const std::string_view& s); std::optional parse_int_pair(const std::string_view& a, const std::string_view& b) { co_return std::make_tuple(co_await parse_int(a), co_await parse_int(b)); } ```

While most of cppcoro is platform agnostic, some of the thread-pooling and I/O code is OS-specific. This issue is for providing an implemention of the cppcoro I/O abstractions for Linux....

help wanted

The current implementation of `task` and `async_generator` make use of atomics to arbitrate between a potential race between the awaiting consumer suspending while waiting for a value to be produced...

Allow callers to specify a custom allocator to use for allocating the coroutine frame. General usage guide: ```c++ struct MyAllocator { MyAllocator(); MyAllocator(const MyAllocator&); ~MyAllocator(); void* allocate(std::size_t sz); void free(void*...

The `when_all` concurrency primitive currently requires that all of the tasks are created up front whereas with server workloads we'll typically be dynamically starting new tasks to handle the connections...

As discussed in https://github.com/lewissbaker/cppcoro/issues/46#issuecomment-328516796 the async I/O facilities provided by cppcoro should be split out into a separate library to allow applications to make use of the generic, core components...

There have been some random test-failures on the CI servers. eg. This [test run](https://ci.appveyor.com/project/lewissbaker/cppcoro/build/1.0.140/job/xwimhya3f2jwp024) failed with: ``` c:\projects\cppcoro\test\scheduling_operator_tests.cpp(21) TEST SUITE: schedule/resume_on TEST CASE: schedule_on task function c:\projects\cppcoro\test\scheduling_operator_tests.cpp(40) ERROR! CHECK( std::this_thread::get_id()...