CVSROOT:        /cvs
Module name:    src
Changes by:     [email protected]   2018/02/06 08:13:08

Modified files:
        sys/netinet    : tcp_timer.c tcp_timer.h tcp_var.h 

Log message:
There was a race in the TCP timers.  As they may sleep to grab the
netlock, timers may still run after they have been disarmed.  Deleting
the timeout is not sufficient to cancel them, but the code from 4.4
BSD is assuming this.
The solution is to add a flag for every timer to see whether it has
been armed or canceled.  Remove the TF_DEAD check as tcp_canceltimers()
is called before the reaper timer is fired.  Cancelation works
reliably now.
OK mpi@

Reply via email to