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)
|
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
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -917,6 +917,7 @@ struct ILibLifeTime
|
|||||||
long long NextTriggerTick;
|
long long NextTriggerTick;
|
||||||
|
|
||||||
void *Reserved;
|
void *Reserved;
|
||||||
|
char *CurrentTriggeredMetaData;
|
||||||
|
|
||||||
void *ObjectList;
|
void *ObjectList;
|
||||||
int ObjectCount;
|
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);
|
sprintf_s(val + oldLen, ILibMemory_Size(val) - oldLen, "%s%s", oldLen>0?", ":"", metadata);
|
||||||
data->metadata = val;
|
data->metadata = val;
|
||||||
}
|
}
|
||||||
|
char *ILibLifeTime_GetCurrentTriggeredMetadata(void* LifeTimeMonitorObject)
|
||||||
|
{
|
||||||
|
return(((struct ILibLifeTime*)LifeTimeMonitorObject)->CurrentTriggeredMetaData);
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// An internal method used by the ILibLifeTime methods
|
// 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)
|
if (removed == 0)
|
||||||
{
|
{
|
||||||
// Trigger the callback
|
// Trigger the callback
|
||||||
|
LifeTimeMonitor->CurrentTriggeredMetaData = EVT->metadata;
|
||||||
EVT->CallbackPtr(EVT->data);
|
EVT->CallbackPtr(EVT->data);
|
||||||
|
LifeTimeMonitor->CurrentTriggeredMetaData = NULL;
|
||||||
}
|
}
|
||||||
else
|
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_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__)
|
#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);
|
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.
|
// Removes all event triggers that contain the specified data object.
|
||||||
|
|||||||
Reference in New Issue
Block a user