public static void enter(JNIEnvironment env) { CEntryPointActions.enter((IsolateThread) env); } }
static void enter(NativeTruffleEnv env) { CEntryPointActions.enter(env.isolateThread()); } }
static void enter(IsolateThread thread) { int code = CEntryPointActions.enter(thread); if (code != 0) { CEntryPointActions.failFatally(code, errorMessage.get()); } } }
@Uninterruptible(reason = UNINTERRUPTIBLE_REASON) @CEntryPoint(name = "tear_down_isolate", documentation = { "Tears down the passed isolate, waiting for any attached threads to detach from", "it, then discards the isolate's objects, threads, and any other state or context", "that is associated with it.", "Returns 0 on success, or a non-zero value on failure."}) @CEntryPointOptions(prologue = NoPrologue.class, epilogue = NoEpilogue.class, nameTransformation = NameTransformation.class) public static int tearDownIsolate(IsolateThread isolateThread) { int result = CEntryPointActions.enter(isolateThread); if (result != 0) { CEntryPointActions.leave(); return result; } return CEntryPointActions.leaveTearDownIsolate(); }
@Uninterruptible(reason = UNINTERRUPTIBLE_REASON) @CEntryPoint(name = "detach_thread", documentation = { "Detaches the passed isolate thread from its isolate and discards any state or", "context that is associated with it. At the time of the call, no code may still", "be executing in the isolate thread's context.", "Returns 0 on success, or a non-zero value on failure."}) @CEntryPointOptions(prologue = NoPrologue.class, epilogue = NoEpilogue.class, nameTransformation = NameTransformation.class) public static int detachThread(IsolateThread thread) { int result = CEntryPointActions.enter(thread); if (result != 0) { CEntryPointActions.leave(); return result; } result = CEntryPointActions.leaveDetachThread(); return result; }
@Uninterruptible(reason = UNINTERRUPTIBLE_REASON) @CEntryPoint @CEntryPointOptions(prologue = NoPrologue.class, epilogue = NoEpilogue.class, publishAs = Publish.NotPublished) @CEntryPointBuiltinImplementation(builtin = Builtin.DETACH_THREAD) public static int detachThread(IsolateThread thread) { int status = CEntryPointActions.enter(thread); if (status != 0) { CEntryPointActions.leave(); return status; } status = CEntryPointActions.leaveDetachThread(); return status; }
@Uninterruptible(reason = UNINTERRUPTIBLE_REASON) @CEntryPoint @CEntryPointOptions(prologue = NoPrologue.class, epilogue = NoEpilogue.class, publishAs = Publish.NotPublished) @CEntryPointBuiltinImplementation(builtin = Builtin.TEAR_DOWN_ISOLATE) public static int tearDownIsolate(IsolateThread isolateThread) { int result = CEntryPointActions.enter(isolateThread); if (result != 0) { CEntryPointActions.leave(); return result; } result = CEntryPointActions.leaveTearDownIsolate(); return result; }
@Uninterruptible(reason = UNINTERRUPTIBLE_REASON) @CEntryPoint @CEntryPointOptions(prologue = NoPrologue.class, epilogue = NoEpilogue.class, publishAs = Publish.NotPublished) @CEntryPointBuiltinImplementation(builtin = Builtin.GET_ISOLATE) public static Isolate getIsolate(IsolateThread thread) { int status = CEntryPointActions.enter(thread); if (status != 0) { return WordFactory.nullPointer(); } Isolate isolate = CurrentIsolate.getIsolate(); if (CEntryPointActions.leave() != 0) { isolate = WordFactory.nullPointer(); } return isolate; }