void AiaClock_SetTimeSinceNTPEpoch()

in ports/Clock/src/aia_clock_config.c [86:103]


void AiaClock_SetTimeSinceNTPEpoch( AiaTimepointSeconds_t secondsSinceNTPEpoch )
{
    time_t secondsSinceUtcEpoch =
        secondsSinceNTPEpoch -
        ( AIA_CLOCK_YEARS_BEWEEN_NTC_AND_UTC_EPOCH * AIA_CLOCK_DAYS_PER_YEAR +
          AIA_CLOCK_NUM_EXTRA_DAYS_BETWEEN_NTC_AND_UTC_EPOCH ) *
            AIA_CLOCK_SECONDS_PER_DAY;
    AiaLogInfo( "UTC time = %s", asctime( gmtime( &secondsSinceUtcEpoch ) ) );

    while( !Atomic_CompareAndSwap_u32( &g_spinLock, 1, 0 ) )
    {
        /* spin lock, inefficient */
    }
    g_serverSynchronized = true;
    g_lastSynchronization = AiaClock( GetTimeMs )() / AIA_MS_PER_SECOND;
    g_lastRetrievedTimeSinceNTPEpoch = secondsSinceNTPEpoch;
    AiaAtomicBool_Clear( &g_spinLock );
}