timer_set maintains next timeout so no need to duplicate it. This also fixes a potential issue, if upon timer expiry no timer is pending we did not update _next_timeout which will result in timer fd not being updated upon next arm().