Synchronization hook support for osiClockTime

This commit is contained in:
Andrew Johnson
2019-06-07 13:16:42 -05:00
parent 345cfcffa8
commit 5cfff383b2
2 changed files with 13 additions and 0 deletions

View File

@@ -148,6 +148,8 @@ void ClockTime_GetProgramStart(epicsTimeStamp *pDest)
/* Synchronization thread */
#if defined(vxWorks) || defined(__rtems__)
CLOCKTIME_SYNCHOOK ClockTime_syncHook = NULL;
static void ClockTimeSync(void *dummy)
{
taskwdInsert(0, NULL, NULL);
@@ -179,11 +181,16 @@ static void ClockTimeSync(void *dummy)
ClockTimePvt.syncTime = timeNow;
epicsMutexUnlock(ClockTimePvt.lock);
if (ClockTime_syncHook)
ClockTime_syncHook(1);
ClockTimePvt.ClockTimeSyncInterval = ClockTimeSyncInterval_value;
}
}
ClockTimePvt.synchronized = 0;
if (ClockTime_syncHook)
ClockTime_syncHook(0);
taskwdRemove(0);
}
#endif

View File

@@ -19,6 +19,12 @@ void ClockTime_Init(int synchronize);
void ClockTime_Shutdown(void *dummy);
int ClockTime_Report(int level);
#if defined(vxWorks) || defined(__rtems__)
typedef void (* CLOCKTIME_SYNCHOOK)(int synchronized);
extern CLOCKTIME_SYNCHOOK ClockTime_syncHook;
#endif
#ifdef __cplusplus
}
#endif