From 517cd51cea4bcc61444b02861f3e0d8cb93b6383 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 25 May 2017 14:36:25 +0900 Subject: Invoke ensure clauses before switching context from fibers; fix #3662 --- src/vm.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src') diff --git a/src/vm.c b/src/vm.c index 23e20b826..6d4aac147 100644 --- a/src/vm.c +++ b/src/vm.c @@ -1870,6 +1870,9 @@ RETRY_TRY_BLOCK: if (mrb->c->ci == mrb->c->cibase && mrb->c->ci->pc) { struct mrb_context *c = mrb->c; + while (eidx > 0) { + ecall(mrb, --eidx); + } mrb->c = c->prev; c->prev = NULL; ci = mrb->c->ci; -- cgit v1.2.3