rx: Avoid rxi_Delay on RXS_CheckResponse failure 97/10997/1
authorAndrew Deason <adeason@sinenomine.net>
Fri, 21 Feb 2014 21:30:49 +0000 (15:30 -0600)
committerSimon Wilkinson <sxw@your-file-system.com>
Tue, 1 Apr 2014 21:34:08 +0000 (22:34 +0100)
commit0ec67b0a9a175af14e360da75d1f5429c6c97b24
tree6a81f3c2fbe8d71fbbfd3ba27427e53830a6d876
parent61d80537cae95d125c4b9fed31e2454a281b8b02
rx: Avoid rxi_Delay on RXS_CheckResponse failure

Currently we rxi_Delay whenever RXS_CheckResponse fails for any
reason. This can result in disastrous performance degradations if a
client keeps sending "bad" responses, since rxi_Delay'ing here will
delay the Rx listener thread. This means we cannot receive any packets
for about a second, which can easily cause us to drop a lot of
incoming packets.

Instead, send the abort after 1 second by scheduling an event. This
will retain existing behavior from the point of view of the client
(it will get the abort after 1 second), but avoids hanging the Rx
listener thread.

FIXES 131802

Change-Id: Id8f9fc46902ae3cf019dd0ece0a96133b9b9d07c
src/rx/rx.c