Skip to content
Paul Evans edited this page Dec 6, 2017 · 5 revisions

Future::AsyncAwait

Notable Links:

Purpose:

This will be a living document that will get updated every Thursday evening to account for any contributions or advancements made on the project until it is no longer deemed necessary.

How to Contribute:

  1. Read through the questions and comments posed here.
  2. Research and help find documentation or answers for any of the questions posed here.
  3. Provide use cases (good edge cases, etc.) to test against BANANA example

You can respond with comments here, emails directly to Paul Evans, RT tickets, IRC chat, or really, any other method of communication you like.

Anyway that you can find to contribute to the project would be appreciated.

Questions that need answering:

  1. How do you communicate context (list/scalar/void) into an async sub?
  2. How should local behave around async/await deferral?

TODOs:

  • Expand the implementation of await on non-ready Futures:
    • Consider the save stack - how should local even work though? See above
  • Clean up the memory leaks

2017-12-06 Update

(A long-overdue update so some of this is old news)

  1. A release now works fine on 5.24 and above.
  2. Work ongoing trying to consider 5.22 and earlier - the context stack changes are making that tricky

2017-04-27 Update

  1. RT #121264 was entered to fix dependencies. Will be remedied soon.
  2. A few attempts to implement await on non-ready Futures were made but a working solution is yet to present itself.

2017-05-08 Update

  1. Added Future as a dependency which will solve RT #121264
  2. Made initial inroads into a deferred-CV with suspend and resume pairs, to implement awaiting. It works for a few trivial unit-test cases but will still fail for many real-world examples.