- ;; Yikes, an error!
- ((*error*)
- ;; @@: Not what we want in the long run?
- ;; What we'd *prefer* to do is to resume this message
- ;; and throw an error inside the message handler
- ;; (say, from send-mesage-wait), but that causes a SIGABRT (??!!)
- (hash-remove! (hive-waiting-coroutines hive)
- (message-in-reply-to message))
- (let ((explaination
- (if (eq? (message-action message) '*reply*)
- "Won't resume coroutine; got an *error* as a reply"
- "Won't resume coroutine because action is not *reply*")))
- (throw 'hive-unresumable-coroutine
- explaination #:message message)))