Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F81969405
D3856.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
970 B
Referenced Files
None
Subscribers
None
D3856.diff
View Options
Index: sys/netinet/tcp_timer.c
===================================================================
--- sys/netinet/tcp_timer.c
+++ sys/netinet/tcp_timer.c
@@ -941,21 +941,9 @@
}
if (tp->t_timers->tt_flags & timer_type) {
- if (callout_stop(t_callout) &&
- (tp->t_timers->tt_flags & f_reset)) {
+ if (callout_drain_async(t_callout, f_callout, tp)) {
+ /* callout is no longer executing */
tp->t_timers->tt_flags &= ~(timer_type | f_reset);
- } else {
- /*
- * Can't stop the callout, defer tcpcb actual deletion
- * to the last tcp timer discard callout.
- * The TT_STOPPED flag will ensure that no tcp timer
- * callouts can be restarted on our behalf, and
- * past this point currently running callouts waiting
- * on inp lock will return right away after the
- * classical check for callout reset/stop events:
- * callout_pending() || !callout_active()
- */
- callout_reset(t_callout, 1, f_callout, tp);
}
}
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Dec 15, 6:24 AM (9 h, 24 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
9091486
Default Alt Text
D3856.diff (970 B)
Attached To
Mode
D3856: Use callout drain async in the TCP stack
Attached
Detach File
Event Timeline
Log In to Comment