diff --git a/main.c b/main.c index 8ca3fe9..c1e6e88 100644 --- a/main.c +++ b/main.c @@ -95,10 +95,10 @@ MAI_CleanupAndExit(void) NSR_Finalise(); NCR_Finalise(); BRD_Finalise(); - SRC_Finalise(); SST_Finalise(); REF_Finalise(); RCL_Finalise(); + SRC_Finalise(); RTC_Finalise(); CAM_Finalise(); NIO_Finalise(); @@ -349,6 +349,7 @@ int main NIO_Initialise(); CAM_Initialise(); RTC_Initialise(); + SRC_Initialise(); RCL_Initialise(); /* Command-line switch must have priority */ @@ -369,7 +370,6 @@ int main REF_Initialise(); SST_Initialise(); - SRC_Initialise(); BRD_Initialise(); NCR_Initialise(); NSR_Initialise(); diff --git a/refclock.c b/refclock.c index 64c3273..635faab 100644 --- a/refclock.c +++ b/refclock.c @@ -236,6 +236,8 @@ RCL_AddRefclock(RefclockParameters *params) filter_init(&inst->filter, params->filter_length); + inst->source = SRC_CreateNewInstance(inst->ref_id, SRC_REFCLOCK, NULL); + #if 0 LOG(LOGS_INFO, LOGF_Refclock, "refclock added poll=%d dpoll=%d filter=%d", inst->poll, inst->driver_poll, params->filter_length); @@ -253,7 +255,6 @@ RCL_StartRefclocks(void) for (i = 0; i < n_sources; i++) { RCL_Instance inst = &refclocks[i]; - inst->source = SRC_CreateNewInstance(inst->ref_id, SRC_REFCLOCK, NULL); inst->timeout_id = SCH_AddTimeoutByDelay(0.0, poll_timeout, (void *)inst); if (inst->lock_ref) {