c
static void
ble_hs_timer_sched(int32_t ticks_from_now)
{
    ble_npl_time_t abs_time;
    if (ticks_from_now == BLE_HS_FOREVER) {
        return;
    }
    ble_npl_time_t current_time = ble_npl_time_get();
    abs_time = current_time + (ble_npl_time_t)ticks_from_now;
    // Ensure abs_time is always in the future
    if (abs_time <= current_time && ticks_from_now > 0) {
        abs_time = current_time + 1; // Set to next tick if overflow occurred
    }
    // ... rest of the function
}
