Query timeout handler is rescheduled if DNS context mutex is locked. So far there was no timeout used, which means that work is simply put at the end of system workqueue. This solves cases when mutex is locked by any higher priority cooperative threads. If however mutex was locked in application code within lower priority thread (which is very likely) and query timeout has expired in the meantime, then system workqueue is busy looping by calling query timeout handler and trying to acquire DNS context lock. Reschedule query timeout handler with 10ms delay, so that all threads, including those with lower priorities, have a chance to move forward and release DNS context lock. Signed-off-by: Marcin Niestroj <m.niestroj@grinn-global.com> |
||
|---|---|---|
| .. | ||
| CMakeLists.txt | ||
| dns_internal.h | ||
| dns_pack.c | ||
| dns_pack.h | ||
| dns_sd.c | ||
| dns_sd.h | ||
| Kconfig | ||
| llmnr_responder.c | ||
| mdns_responder.c | ||
| resolve.c | ||