Open singpolyma opened 2 years ago
Looks like this has a merge conflict now. Would you take a look and resolve as necessary?
I'll be honest that I haven't reviewed this too closely, but it looks backward compatible and makes sense given your other work in this space. 👍
If a handler returns an EM::Deferrable, wait for the EM result to be ready before considering the handler complete, raising and error result as an exception in the current context just like a non-async handler would have done. This allows async filters/handlers to run in order.
To be able to sync, handle_data is wrapped in a Fiber. To aid in testing or other cases that want to wait until the whole process is done, handle_data returns an EM::Deferrable that will signal the success or failure of the whole process (for both the sync and async cases). This can be safely ignored by most callers.