#context #coroutine #coroutines #concurrency

nightly context-coroutine

This is a simple set of extensions to provide stackful coroutines; it is not officially associated with the context crate

3 stable releases

✓ Uses Rust 2018 edition

3.1.0 Apr 13, 2019
3.0.0 Mar 17, 2019
2.1.0 Feb 2, 2019

#128 in Concurrency

27 downloads per month

MIT license

63KB
863 lines

context-coroutine

Provides coroutines using the trait Coroutine.

Coroutines use a separate, special stack.

Implement this trait and then call Coroutine::start_coroutine(), passing in start arguments and a source of memory for the stack and heap. Coroutines can use a switchable allocator, providing a straightforward way to restrict the amount of dynamic memory they can access and to ensure they only use thread-local memory.

For a simple coroutine, use the stack stacks::ProtectedStack.

This crate was originally a simple set of extensions to the context crate to provide stackful coroutines. The developers are not associated with the authors of context but are extremely grateful for the work they've put into to a superb piece of code.

Licensing

The license for this project is MIT.


lib.rs:

context-coroutine

Provides coroutines using the trait Coroutine.

Coroutines use a separate, special stack.

Implement this trait and then call Coroutine::start_coroutine(), passing in start arguments and a source of memory for the stack and heap. Coroutines can use a switchable allocator, providing a straightforward way to restrict the amount of dynamic memory they can access and to ensure they only use thread-local memory.

For a simple coroutine, use the stack stacks::ProtectedStack.

This crate was originally a simple set of extensions to the context crate to provide stackful coroutines. The developers are not associated with the authors of context but are extremely grateful for the work they've put into to a superb piece of code.

Licensing

The license for this project is MIT.

Dependencies

~714KB
~14K SLoC