1
0
mirror of https://github.com/Ylianst/MeshAgent synced 2025-12-22 11:13:21 +00:00

1. added 'ILibChain_IsLinkAlive' macro

2. incremental update for macos message-box
This commit is contained in:
Bryan Roe
2019-05-24 15:11:27 -07:00
parent c17d6a069b
commit 134f34d9cf
5 changed files with 74 additions and 20 deletions

View File

@@ -147,10 +147,20 @@ duk_ret_t ILibDuktape_ChildProcess_Kill(duk_context *ctx)
duk_ret_t ILibDuktape_ChildProcess_waitExit(duk_context *ctx)
{
void *chain = Duktape_GetChain(ctx);
if (ILibIsChainBeingDestroyed(chain))
{
return(ILibDuktape_Error(ctx, "Cannot waitExit() because current thread is exiting"));
}
duk_push_this(ctx); // [spawnedProcess]
duk_push_int(ctx, 1); // [spawnedProcess][flag]
duk_put_prop_string(ctx, -2, "\xFF_WaitExit"); // [spawnedProcess]
if (!ILibChain_IsLinkAlive(Duktape_GetPointerProperty(ctx, -1, ILibDuktape_ChildProcess_Manager)))
{
return(ILibDuktape_Error(ctx, "Cannot waitExit() because JS Engine is exiting"));
}
void *mods[] = { ILibGetBaseTimer(Duktape_GetChain(ctx)), Duktape_GetPointerProperty(ctx, -1, ILibDuktape_ChildProcess_Manager) };
ILibChain_Continue(chain, (ILibChain_Link**)mods, 2, -1);
@@ -231,7 +241,6 @@ duk_ret_t ILibDuktape_ChildProcess_Manager_Finalizer(duk_context *ctx)
{
duk_get_prop_string(ctx, 0, ILibDuktape_ChildProcess_Manager);
ILibProcessPipe_Manager manager = (ILibProcessPipe_Manager)duk_get_pointer(ctx, -1);
ILibChain_SafeRemove(((ILibChain_Link*)manager)->ParentChain, manager);
return(0);
}