UDT comes into a deadlock within a simple pattern:
Callstacks at the listen side are:
Thread "CRcvQueue::worker" stucked in CUDTUnited::locate():
kernel32.dll!_WaitForSingleObject@8() + 0x12 bytes
dll.dll!CGuard::CGuard(void * & lock=0x000000d0) Line 327 + 0x10 bytes C++
dll.dll!CUDTUnited::locate(const int u=550519200) Line 1148 C++
dll.dll!CUDTUnited::newConnection(const int listen=550519200, const sockaddr * peer=0x00c159c0, CHandShake * hs=0x055efaf4) Line 319 + 0xc bytes C++
dll.dll!CUDT::listen(sockaddr * addr=0x00c159c0, CPacket & packet={...}) Line 2509 + 0x1b bytes C++
dll.dll!CRcvQueue::worker(void * param=0x00c08248) Line 1023 + 0x13 bytes C++
kernel32.dll!@BaseThreadInitThunk@12() + 0x12 bytes
Thread "CSndQueue::worker" stucked on WaitForSingleObject(self->m_WindowCond, INFINITE):
kernel32.dll!_WaitForSingleObject@8() + 0x12 bytes
dll.dll!CSndQueue::worker(void * param=0x00c04150) Line 553 C++
kernel32.dll!@BaseThreadInitThunk@12() + 0x12 bytes
Thread "CUDTUnited::garbageCollect" stucked in CUDTUnited::checkBrokenSockets():
kernel32.dll!_WaitForSingleObject@8() + 0x12 bytes
dll.dll!CGuard::CGuard(void * & lock=0x000000d0) Line 327 + 0x10 bytes C++
dll.dll!CUDTUnited::checkBrokenSockets() Line 1183 C++
dll.dll!CUDTUnited::garbageCollect(void * p=0x70536308) Line 1481 C++
kernel32.dll!@BaseThreadInitThunk@12() + 0x12 bytes
Library version is 4.11.
This is obviously a windows build.