[NREPL-58] Inconsistency between session and eval responses Created: 04/Jun/14 Updated: 13/Jun/14
|Reporter:||Jeff Valk||Assignee:||Chas Emerick|
At present, the interruptible-eval handler sends the :value or :eval-error status message before it updates the session to reflect the new binding result. This leaves the session values, particularly *e, *1, etc inconsistent with the state implied by those response messages.
As a practical example, if we want to wrap the "eval" op to check for an :eval-error and add error detail to the response from *e, (get @session #'*e) needs to hold the exception that resulted in the :eval-error. At present, however, it still holds the previous exception, leaving us no way to retrieve the current one in band.
The attached (minimal) patch makes ensures the session is updated before "eval" responses are sent.
|Comment by Jeff Valk [ 04/Jun/14 1:00 PM ]|
In the event that the attached patch seems a reasonable fix, I should probably add that my CA will be in the mail shortly.
|Comment by Bozhidar Batsov [ 13/Jun/14 8:05 AM ]|
I'm just here to pledge my support for Jeff's patch. Btw, Jeff, few days later and you could have signed the CA electronically.
|Comment by Jeff Valk [ 13/Jun/14 9:32 AM ]|
The irony did not escape me. Anyway, my CA (in dead tree form) is now on file.