3: Make use of pin! stabilization r=bertptrs a=bertptrs
With Rust 1.68 `std::pin::pin!` is stable therefore we can now use it to get rid of a pesky heap allocation in the executor.
This requires bumping MSRV to 1.68, but I feel this should be the last time that will happen, so after this I can cut the 1.0.
Co-authored-by: Bert Peters <bert@bertptrs.nl>
1: Fix hanging when a future wakes itself r=bertptrs a=bertptrs
It's possible that either the future wakes itself or the something requests to be awoken while the future is being polled. This PR adds a bool to the waker state to track whether that happened, and will immediately unpark the executor if it did.
Also add bors for nicer merging.
Co-authored-by: Bert Peters <bert@bertptrs.nl>