I am able to reproduce the issue, using the code that Carsten posted.
On deleting the timer queue, the thread destructor calls epicsThreadMustJoin. This gets stuck forever at line 642 in osdThread.c :
if(epicsThreadGetIdSelf() != id) { DWORD status = WaitForSingleObject(pParmWIN32->handle, INFINITE);
I am able to reproduce the issue, using the code that Carsten posted.
On deleting the timer queue, the thread destructor calls epicsThreadMust Join.
This gets stuck forever at line 642 in osdThread.c :
if(epicsThreadG etIdSelf( ) != id) { ject(pParmWIN32 ->handle, INFINITE);
DWORD status = WaitForSingleOb