void
LCL_Finalise(void)
{
- while (change_list.next != &change_list)
- LCL_RemoveParameterChangeHandler(change_list.next->handler,
- change_list.next->anything);
-
- while (dispersion_notify_list.next != &dispersion_notify_list)
- LCL_RemoveDispersionNotifyHandler(dispersion_notify_list.next->handler,
- dispersion_notify_list.next->anything);
+ /* Make sure all handlers have been removed */
+ if (change_list.next != &change_list)
+ assert(0);
+ if (dispersion_notify_list.next != &dispersion_notify_list)
+ assert(0);
}
/* ================================================== */
void
MNL_Finalise(void)
{
+ LCL_RemoveParameterChangeHandler(slew_samples, NULL);
}
/* ================================================== */
clean_source_record(record);
}
+ LCL_RemoveParameterChangeHandler(slew_sources, NULL);
+
ARR_DestroyInstance(records);
ARR_DestroyInstance(pools);
update_drift_file(LCL_ReadAbsoluteFrequency(), our_skew);
}
+ LCL_RemoveParameterChangeHandler(handle_slew, NULL);
+
Free(fb_drifts);
initialised = 0;
(void) RTC_Linux_WriteParameters();
}
+
+ if (rtc_sec)
+ LCL_RemoveParameterChangeHandler(slew_samples, NULL);
+
Free(rtc_sec);
Free(rtc_trim);
Free(system_times);
void SMT_Finalise(void)
{
+ if (!enabled)
+ return;
+
+ LCL_RemoveParameterChangeHandler(handle_slew, NULL);
}
int SMT_IsEnabled(void)
LCL_ReadRawTime(&now);
stop_fastslew(&now);
+
+ LCL_RemoveParameterChangeHandler(handle_step, NULL);
}
/* ================================================== */