In UC, consider the protocol ρ^φ, which uses the protocol φ 'as a subroutine'. If I understand correctly, ρ would call φ with arguments, which would then perform computations, perhaps even calling its own sub-sub-protocols, and would finally return the result to ρ, which continues execution.
As far as I can understand, it is not possible for φ to 'callback' ρ when it is executing. On the other hand, in typical programming languages, this is possible. A simple example that I'm thinking about would be something like a C function with signature void (char* result), where result is an array that the 'called' function would populate.
I was wondering if UC has a way to deal with this? Or is it out of scope?