1
0
mirror of https://github.com/Ylianst/MeshAgent synced 2026-01-03 09:03:48 +00:00

1. Updated to duktape 2.6.0

2. Added support for execution timeout
This commit is contained in:
Bryan Roe
2021-02-16 15:10:28 -08:00
parent 9d2fe9b2b0
commit 71b5e588c3
8 changed files with 11670 additions and 8367 deletions

View File

@@ -51,6 +51,29 @@ typedef struct Duktape_EventLoopDispatchData
void *user;
}Duktape_EventLoopDispatchData;
duk_bool_t ILibDuktape_EXEC_TIMEOUT_CHECK(void *udata)
{
ILibDuktape_ContextData *ctxd = (ILibDuktape_ContextData*)udata;
if (ctxd->executionTime == 0 || ctxd->maxExecutionTime == 0) { return(0); }
if ((ILibGetUptime() - ctxd->executionTime) > ctxd->maxExecutionTime)
{
ctxd->executionTime = 0;
ctxd->executionCount = 0;
return(1);
}
return(0);
}
void ILibDuktape_ExecutorTimeout_Start(duk_context *ctx)
{
ILibDuktape_ContextData *ctxd = (ILibDuktape_ContextData*)duk_ctx_context_data(ctx);
if (ctxd != NULL && ctxd->executionCount++ == 0) { ctxd->executionTime = ILibGetUptime(); }
}
void ILibDuktape_ExecutorTimeout_Stop(duk_context *ctx)
{
ILibDuktape_ContextData *ctxd = (ILibDuktape_ContextData*)duk_ctx_context_data(ctx);
if (ctxd != NULL && --ctxd->executionCount <= 0) { ctxd->executionTime = 0; ctxd->executionCount = 0; }
}
duk_ret_t duk_fixed_buffer_finalizer(duk_context *ctx)
{