Clarify completion delivery persona for async comm

Issue #180 resolved
Dan Bonachea created an issue

As noted in impl issue 423, the spec is somewhat unclear regarding the state of the persona stack when running future/promise completions from as_future()/as_promise() completions.

Some relevant text in Spec 7.1-19:

For futures and promises, only when the initiating thread (persona actually) enters user-level progress will the future or promise be eligible for taking on a readied or fulfilled state

and Spec 10.4-5:

For each OS thread, UPC++ internally maintains a stack of active persona references. The top of this stack is the current persona. All asynchronous UPC++ operations will have their notification events (signaling of futures or promises) sent to the current persona of the OS thread invoking the operation.

What should probably be clarified is that the initiating persona is at the top of the persona stack while signalling futures and promises, and running any chained callbacks.

Comments (1)

  1. Log in to comment