From 606d77dc111508eff4f206aac6423e8715018337 Mon Sep 17 00:00:00 2001 From: Gene Gleyzer Date: Fri, 9 Feb 2024 12:50:41 -0500 Subject: [PATCH] Fix a regression for the fiber depth computation introduced by the change on 1/19/24, 5:35PM --- javatools/src/main/java/org/xvm/runtime/Fiber.java | 6 +++--- javatools/src/main/java/org/xvm/runtime/Frame.java | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/javatools/src/main/java/org/xvm/runtime/Fiber.java b/javatools/src/main/java/org/xvm/runtime/Fiber.java index 6aaefb6c63..f30828e77f 100644 --- a/javatools/src/main/java/org/xvm/runtime/Fiber.java +++ b/javatools/src/main/java/org/xvm/runtime/Fiber.java @@ -50,10 +50,10 @@ public Fiber(ServiceContext context, Message msgCall) f_fnCaller = msgCall.f_fnCaller; m_status = FiberStatus.Initial; - if (fiberCaller == null) + if (fiberCaller == null || fiberCaller.getStatus() == FiberStatus.Terminating) { - // an independent fiber is only limited by the timeout of the parent service - // and in general has no timeout + // an independent or asynchronous (e.g. created by "callLater") fiber is only limited + // by the timeout of the parent service and in general has no timeout f_nDepth = 0; } else diff --git a/javatools/src/main/java/org/xvm/runtime/Frame.java b/javatools/src/main/java/org/xvm/runtime/Frame.java index 8d74641c84..e01ba004fc 100644 --- a/javatools/src/main/java/org/xvm/runtime/Frame.java +++ b/javatools/src/main/java/org/xvm/runtime/Frame.java @@ -155,7 +155,7 @@ protected Frame(Fiber fiber, int iCallerPC, Op[] aopNative, f_context = fiber.f_context; f_iId = f_context.m_iFrameCounter++; f_nDepth = fiber.f_nDepth; // under-count, but works to prevent an infinite recursion - f_fiber = fiber; + f_fiber = fiber; f_framePrev = null; f_iPCPrev = iCallerPC; f_function = null;