diff --git a/gtests/net/packetdrill/run.c b/gtests/net/packetdrill/run.c index 778e2b5947f63e57dc3d6a707d2ece13837d540a..574c0cca40a31a987a2eda05539eda819792953c 100644 --- a/gtests/net/packetdrill/run.c +++ b/gtests/net/packetdrill/run.c @@ -318,6 +318,7 @@ void wait_for_event(struct state *state) state, state->event->time_usecs); DEBUGP("waiting until %lld -- now is %lld\n", event_usecs, now_usecs()); + run_unlock(state); while (1) { const s64 wait_usecs = event_usecs - now_usecs(); if (wait_usecs <= 0) @@ -333,9 +334,7 @@ void wait_for_event(struct state *state) * event we're waiting for and then spin. */ if (wait_usecs > MAX_SPIN_USECS) { - run_unlock(state); usleep(wait_usecs - MAX_SPIN_USECS); - run_lock(state); } #endif @@ -343,7 +342,7 @@ void wait_for_event(struct state *state) * two to wait, so we spin. */ } - + run_lock(state); check_event_time(state, now_usecs()); }