@@ -2023,15 +2023,15 @@ static inline unsigned long
2023
2023
_dispatch_source_timer_data (dispatch_source_t ds , dispatch_unote_t du )
2024
2024
{
2025
2025
dispatch_timer_source_refs_t dr = du ._dt ;
2026
- unsigned long data , prev , clear_prev = 0 ;
2026
+ uint64_t data , prev , clear_prev = 0 ;
2027
2027
2028
2028
os_atomic_rmw_loop2o (ds , ds_pending_data , prev , clear_prev , relaxed , {
2029
2029
data = prev >> 1 ;
2030
2030
if (unlikely (prev & DISPATCH_TIMER_MISSED_MARKER )) {
2031
2031
os_atomic_rmw_loop_give_up (goto handle_missed_intervals );
2032
2032
}
2033
2033
});
2034
- return data ;
2034
+ return ( unsigned long ) data ;
2035
2035
2036
2036
handle_missed_intervals :
2037
2037
// The timer may be in _dispatch_source_invoke2() already for other
@@ -2046,7 +2046,7 @@ _dispatch_source_timer_data(dispatch_source_t ds, dispatch_unote_t du)
2046
2046
uint64_t now = _dispatch_time_now (DISPATCH_TIMER_CLOCK (dr -> du_ident ));
2047
2047
if (now >= dr -> dt_timer .target ) {
2048
2048
OS_COMPILER_CAN_ASSUME (dr -> dt_timer .interval < INT64_MAX );
2049
- data = _dispatch_source_timer_compute_missed (dr , now , data );
2049
+ data = _dispatch_source_timer_compute_missed (dr , now , ( unsigned long ) data );
2050
2050
}
2051
2051
2052
2052
// When we see the MISSED_MARKER the manager has given up on this timer
@@ -2059,7 +2059,7 @@ _dispatch_source_timer_data(dispatch_source_t ds, dispatch_unote_t du)
2059
2059
// on the manager and make the changes to `ds_timer` above visible.
2060
2060
_dispatch_queue_atomic_flags_clear (ds -> _as_dq , DSF_ARMED );
2061
2061
os_atomic_store2o (ds , ds_pending_data , 0 , relaxed );
2062
- return data ;
2062
+ return ( unsigned long ) data ;
2063
2063
}
2064
2064
2065
2065
static inline void
0 commit comments