diff --git a/contrib/ports/win32/pcapif.c b/contrib/ports/win32/pcapif.c index 58a42b4e..6bf58f02 100644 --- a/contrib/ports/win32/pcapif.c +++ b/contrib/ports/win32/pcapif.c @@ -679,12 +679,17 @@ pcapif_shutdown(struct netif *netif) #endif /* PCAPIF_RX_USE_THREAD */ if (pa->adapter) { pcap_breakloop(pa->adapter); - pcap_close(pa->adapter); } #if PCAPIF_RX_USE_THREAD /* wait for rxthread to end */ - while(pa->rx_running); + while (pa->rx_running) { + Sleep(100); + } #endif /* PCAPIF_RX_USE_THREAD */ + if (pa->adapter) { + pcap_close(pa->adapter); + pa->adapter = NULL; + } #if PCAPIF_HANDLE_LINKSTATE pcapifh_linkstate_close(pa->link_state); #endif /* PCAPIF_HANDLE_LINKSTATE */