From: Alan T. DeKok Date: Mon, 17 Aug 2009 06:53:47 +0000 (+0200) Subject: Catch non-fatal race conditions X-Git-Tag: release_2_1_7~40 X-Git-Url: http://www.project-moonshot.org/gitweb/?a=commitdiff_plain;h=4592887b29bd2de673c5d81f285e7135060a3ed7;p=freeradius.git Catch non-fatal race conditions --- diff --git a/src/main/event.c b/src/main/event.c index aab1856..9a42dbe 100644 --- a/src/main/event.c +++ b/src/main/event.c @@ -2722,10 +2722,21 @@ static void received_conflicting_request(REQUEST *request, #endif /* + * Catch race conditions. It may have switched + * from running to done while this code is being + * executed. + */ + case REQUEST_REJECT_DELAY: + case REQUEST_CLEANUP_DELAY: + case REQUEST_DONE: + break; + + /* * It's in some other state, and therefore also * in the event queue. At some point, the * child will notice, and we can then delete it. */ + case REQUEST_PROXIED: default: rad_assert(request->ev != NULL); break;