I think there can be a situation like: processA: processB: 0ns: if (!exiting) 1ns: exiting = 1; 2ns: del_timer 3ns: mod_timer so spinlock seems better for this.