mirror of
https://github.com/Ylianst/MeshAgent
synced 2025-12-21 10:43:36 +00:00
Added timer metadata for setInterval() elapsed/reset
This commit is contained in:
@@ -984,7 +984,8 @@ void ILibDuktape_Polyfills_timer_elapsed(void *obj)
|
||||
|
||||
if (ptrs->timerType == ILibDuktape_Timer_Type_INTERVAL)
|
||||
{
|
||||
ILibLifeTime_AddEx(ILibGetBaseTimer(Duktape_GetChain(ctx)), ptrs, ptrs->timeout, ILibDuktape_Polyfills_timer_elapsed, NULL);
|
||||
char *metadata = ILibLifeTime_GetCurrentTriggeredMetadata(ILibGetBaseTimer(duk_ctx_chain(ctx)));
|
||||
ILibLifeTime_AddEx3(ILibGetBaseTimer(Duktape_GetChain(ctx)), ptrs, ptrs->timeout, ILibDuktape_Polyfills_timer_elapsed, NULL, metadata);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -917,6 +917,7 @@ struct ILibLifeTime
|
||||
long long NextTriggerTick;
|
||||
|
||||
void *Reserved;
|
||||
char *CurrentTriggeredMetaData;
|
||||
|
||||
void *ObjectList;
|
||||
int ObjectCount;
|
||||
@@ -7456,7 +7457,10 @@ void ILibLifeTime_SetMetadata(ILibLifeTime_Token obj, char *metadata, size_t met
|
||||
sprintf_s(val + oldLen, ILibMemory_Size(val) - oldLen, "%s%s", oldLen>0?", ":"", metadata);
|
||||
data->metadata = val;
|
||||
}
|
||||
|
||||
char *ILibLifeTime_GetCurrentTriggeredMetadata(void* LifeTimeMonitorObject)
|
||||
{
|
||||
return(((struct ILibLifeTime*)LifeTimeMonitorObject)->CurrentTriggeredMetaData);
|
||||
}
|
||||
|
||||
//
|
||||
// An internal method used by the ILibLifeTime methods
|
||||
@@ -7538,7 +7542,9 @@ void ILibLifeTime_Check(void *LifeTimeMonitorObject, fd_set *readset, fd_set *wr
|
||||
if (removed == 0)
|
||||
{
|
||||
// Trigger the callback
|
||||
LifeTimeMonitor->CurrentTriggeredMetaData = EVT->metadata;
|
||||
EVT->CallbackPtr(EVT->data);
|
||||
LifeTimeMonitor->CurrentTriggeredMetaData = NULL;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -1373,6 +1373,7 @@ int ILibIsRunningOnChainThread(void* chain);
|
||||
#define ILibLifeTime_Add(LifetimeMonitorObject, data, seconds, Callback, Destroy) ILibLifeTime_AddEx(LifetimeMonitorObject, data, seconds * 1000, Callback, Destroy)
|
||||
#define ILibLifeTime_AddEx(LifetimeMonitorObject, data, milliseconds, Callback, Destroy) ILibLifeTime_AddEx2(LifetimeMonitorObject, data, milliseconds, Callback, Destroy, __FILE__, __LINE__)
|
||||
void ILibLifeTime_SetMetadata(ILibLifeTime_Token obj, char *metadata, size_t metadataLen);
|
||||
char *ILibLifeTime_GetCurrentTriggeredMetadata(void* LifeTimeMonitorObject);
|
||||
|
||||
//
|
||||
// Removes all event triggers that contain the specified data object.
|
||||
|
||||
Reference in New Issue
Block a user