You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Nov 10, 2022. It is now read-only.
I want to eventually write a crate that is like a mashup between a coroutine library and futures. That is, there are a very large set of coroutines that are being multiplexed onto a small number of threads in a thread pool. When a coroutine is blocked waiting for something, I want to save its context, and put it into a ring buffer to try again at a later date. The issue is that the thread that saved the context may not be the thread that picks up the context to continue execution. Is this a supported mode of operation? I did read the requirement that all pointers in the non-volatile registers must still be valid, which I think I can ensure by either requiring closures with move semantics, or closures that only reference stuff on the heap, but I didn't see anything else to suggest that what I'm doing is right or wrong.
The text was updated successfully, but these errors were encountered:
I want to eventually write a crate that is like a mashup between a coroutine library and futures. That is, there are a very large set of coroutines that are being multiplexed onto a small number of threads in a thread pool. When a coroutine is blocked waiting for something, I want to save its context, and put it into a ring buffer to try again at a later date. The issue is that the thread that saved the context may not be the thread that picks up the context to continue execution. Is this a supported mode of operation? I did read the requirement that all pointers in the non-volatile registers must still be valid, which I think I can ensure by either requiring closures with move semantics, or closures that only reference stuff on the heap, but I didn't see anything else to suggest that what I'm doing is right or wrong.
The text was updated successfully, but these errors were encountered: