implement IDeref, IBlockingDeref for channels

Description

  • each deref will take a value from the channel

  • deref from a closed channel returns nil

  • deref with timeout must either timeout or take value from the channel (not both!). Might just want to call some variant of alt!! through the var

  • use internals efficiently

  • do NOT implement IPending/realized, neither interpretation is that great

Patch: async-102-2.patch

The implementation of deref and timed deref is conceptually straightforward, but is difficult to implement due to circular namespace dependencies. Suggestions welcome.

Environment

None

Assignee

Unassigned

Reporter

Stuart Halloway

Labels

None

Approval

Vetted

Patch

Code and Test

Priority

Major
Configure