Rick,

I tried your last commit.  I can still get the same hang.

(By the way, I coded up the thread local storage alternate solution
and it seems to work nicely.  I'll post on that later.)

Here is the stack trace from the RexxDlgProc thread, on 64-bit
Windows.  It's long, but go all the way to the bottom of the stack.
The bottom entries look wrong.

        0000000000000001()      
        0000000000000081()      

Could there be a stack overflow?

        ntdll.dll!0000000077ef0faa()    
        [Frames below may be incorrect and/or missing, no symbols loaded for
ntdll.dll]
        kernel32.dll!0000000077d6d03b()         
        user32.dll!0000000077c41ea7()   
        user32.dll!0000000077c3fb30()   
        rexx.dll!waitHandle(void * s=0x0000000000000178)  Line 88       C++
        rexx.dll!SysSemaphore::wait()  Line 104 C++
        rexx.dll!RexxActivity::waitForDispatch()  Line 285      C++
        rexx.dll!ActivityManager::addWaitingActivity(RexxActivity *
waitingAct=0x000007ffff5f89f0, bool release=false)  Line 168    C++
        rexx.dll!RexxActivity::requestAccess()  Line 1915       C++
        rexx.dll!RexxActivity::enterCurrentThread()  Line 202   C++
        rexx.dll!ApiContext::ApiContext(RexxThreadContext_ *
c=0x000007ffff5f8a18)  Line 75  C++
        rexx.dll!UintptrToObject(RexxThreadContext_ * c=0x000007ffff5f8a18,
unsigned __int64 n=0x00000000000000c8)  Line 619        C++
        oodialog.dll!RexxThreadContext_::Uintptr(unsigned __int64
n=0x00000000000000c8)  Line 867 C++
        oodialog.dll!idFrom2rexxArg(RexxThreadContext_ *
c=0x000007ffff5f8a18, __int64 lParam=0x00000000029ac0a0)  Line 623      C++
        oodialog.dll!searchNotifyTable(unsigned __int64
wParam=0x00000000000000c8, __int64 lParam=0x00000000029ac0a0,
_pbdCSelf * pcpbd=0x000007ffff5eab10)  Line 924 C++
        oodialog.dll!searchMessageTables(unsigned long message=0x0000004e,
unsigned __int64 param=0x00000000000000c8, __int64
lparam=0x00000000029ac0a0, _pbdCSelf * pcpbd=0x000007ffff5eab10)  Line
1306    C++
        oodialog.dll!RexxDlgProc(HWND__ * hDlg=0x000000000022033c, unsigned
int uMsg=0x0000004e, unsigned __int64 wParam=0x00000000000000c8,
__int64 lParam=0x00000000029ac0a0)  Line 146    C++
        user32.dll!0000000077c34582()   
        user32.dll!0000000077c34bf2()   
        user32.dll!0000000077c5467c()   
        user32.dll!0000000077c43abc()   
        user32.dll!0000000077c4231f()   
        user32.dll!0000000077c423fd()   
        ntdll.dll!0000000077ef318f()    
        user32.dll!0000000077c420fa()   
        user32.dll!0000000077c3feed()   
        user32.dll!0000000077c4341b()   
        comctl32.dll!000007ff7f02c802()         
        comctl32.dll!000007ff7f0739f2()         
        comctl32.dll!000007ff7f075f1d()         
        comctl32.dll!000007ff7f077e6f()         
        comctl32.dll!000007ff7f076f87()         
        user32.dll!0000000077c43abc()   
        user32.dll!0000000077c4231f()   
        user32.dll!0000000077c423fd()   
        ntdll.dll!0000000077ef318f()    
        user32.dll!0000000077c408ba()   
        user32.dll!0000000077c408ec()   
        rexx.dll!waitHandle(void * s=0x0000000000000178)  Line 83       C++
        rexx.dll!SysSemaphore::wait()  Line 104 C++
        rexx.dll!RexxActivity::waitForDispatch()  Line 285      C++
        rexx.dll!ActivityManager::addWaitingActivity(RexxActivity *
waitingAct=0x000007ffff5f89f0, bool release=false)  Line 168    C++
        rexx.dll!RexxActivity::requestAccess()  Line 1915       C++
        rexx.dll!RexxActivity::enterCurrentThread()  Line 202   C++
        rexx.dll!ApiContext::ApiContext(RexxThreadContext_ *
c=0x000007ffff5f8a18)  Line 75  C++
        rexx.dll!UintptrToObject(RexxThreadContext_ * c=0x000007ffff5f8a18,
unsigned __int64 n=0x00000000000000c8)  Line 619        C++
        oodialog.dll!RexxThreadContext_::Uintptr(unsigned __int64
n=0x00000000000000c8)  Line 867 C++
        oodialog.dll!idFrom2rexxArg(RexxThreadContext_ *
c=0x000007ffff5f8a18, __int64 lParam=0x00000000029ad6e0)  Line 623      C++
        oodialog.dll!searchNotifyTable(unsigned __int64
wParam=0x00000000000000c8, __int64 lParam=0x00000000029ad6e0,
_pbdCSelf * pcpbd=0x000007ffff5eab10)  Line 924 C++
        oodialog.dll!searchMessageTables(unsigned long message=0x0000004e,
unsigned __int64 param=0x00000000000000c8, __int64
lparam=0x00000000029ad6e0, _pbdCSelf * pcpbd=0x000007ffff5eab10)  Line
1306    C++
        oodialog.dll!RexxDlgProc(HWND__ * hDlg=0x000000000022033c, unsigned
int uMsg=0x0000004e, unsigned __int64 wParam=0x00000000000000c8,
__int64 lParam=0x00000000029ad6e0)  Line 146    C++
        user32.dll!0000000077c34582()   
        user32.dll!0000000077c34bf2()   
        user32.dll!0000000077c5467c()   
        user32.dll!0000000077c43abc()   
        user32.dll!0000000077c4231f()   
        user32.dll!0000000077c423fd()   
        ntdll.dll!0000000077ef318f()    
        user32.dll!0000000077c420fa()   
        user32.dll!0000000077c3feed()   
        user32.dll!0000000077c4341b()   
        comctl32.dll!000007ff7f02c802()         
        comctl32.dll!000007ff7f0739f2()         
        comctl32.dll!000007ff7f075f1d()         
        comctl32.dll!000007ff7f077e6f()         
        comctl32.dll!000007ff7f076f87()         
        user32.dll!0000000077c43abc()   
        user32.dll!0000000077c4231f()   
        user32.dll!0000000077c423fd()   
        ntdll.dll!0000000077ef318f()    
        user32.dll!0000000077c408ba()   
        user32.dll!0000000077c408ec()   
        rexx.dll!SysActivity::relinquish()  Line 156    C++
        rexx.dll!ActivityManager::addWaitingActivity(RexxActivity *
waitingAct=0x000007ffff5f89f0, bool release=false)  Line 165    C++
        rexx.dll!RexxActivity::requestAccess()  Line 1915       C++
        rexx.dll!RexxActivity::enterCurrentThread()  Line 202   C++
        rexx.dll!ApiContext::ApiContext(RexxThreadContext_ *
c=0x000007ffff5f8a18)  Line 75  C++
        rexx.dll!ObjectToCSelf(RexxThreadContext_ * c=0x000007ffff5f8a18,
_RexxObjectPtr * o=0x000007fffecd2800)  Line 576        C++
        oodialog.dll!RexxThreadContext_::ObjectToCSelf(_RexxObjectPtr *
o=0x000007fffecd2800)  Line 847 C++
        oodialog.dll!RexxMethodContext_::ObjectToCSelf(_RexxObjectPtr *
o=0x000007fffecd2800)  Line 1493        C++
        oodialog.dll!rxGetSize(RexxMethodContext_ *
context=0x00000000029ae318, _RexxObjectPtr * s=0x000007fffecd2800, int
argPos=0x00000002)  Line 1023   C++
        oodialog.dll!dlgctrl_textSize_impl(RexxMethodContext_ *
context=0x00000000029ae318, const char * text=0x000007fffebb9df8,
_RexxObjectPtr * _size=0x000007fffecd2800, void *
pCSelf=0x000007ffff5f9b60)  Line 900    C++
        oodialog.dll!dlgctrl_textSize(RexxMethodContext_ *
context=0x00000000029ae318, ValueDescriptor *
arguments=0x00000000029ae200)  Line 895 C++
        rexx.dll!RexxNativeActivation::run(RexxMethod *
_method=0x000007fffedd5ef0, RexxNativeMethod *
_code=0x000007fffedd5eb0, RexxObject * _receiver=0x000007fffef77c70,
RexxString * _msgname=0x000007fffebb9d50, RexxObject * *
_arglist=0x000007fffe909098, unsigned __int64
_argcount=0x0000000000000002, ProtectedObject & resultObj={...})  Line
1226    C++
        rexx.dll!RexxNativeMethod::run(RexxActivity *
activity=0x000007ffff5f89f0, RexxMethod * method=0x000007fffedd5ef0,
RexxObject * receiver=0x000007fffef77c70, RexxString *
messageName=0x000007fffebb9d50, RexxObject * *
argPtr=0x000007fffe909098, unsigned __int64 count=0x0000000000000002,
ProtectedObject & result={...})  Line 279       C++
        rexx.dll!RexxMethod::run(RexxActivity * activity=0x000007ffff5f89f0,
RexxObject * receiver=0x000007fffef77c70, RexxString *
msgname=0x000007fffebb9d50, RexxObject * * argPtr=0x000007fffe909098,
unsigned __int64 count=0x0000000000000002, ProtectedObject &
result={...})  Line 324 C++
        rexx.dll!RexxObject::messageSend(RexxString *
msgname=0x000007fffebb9d50, RexxObject * *
arguments=0x000007fffe909098, unsigned __int64
count=0x0000000000000002, ProtectedObject & result={...})  Line
793     C++
        rexx.dll!RexxExpressionStack::send(RexxString *
message=0x000007fffebb9d50, unsigned __int64 count=0x0000000000000002,
ProtectedObject & result={...})  Line 74        C++
        rexx.dll!RexxInstructionMessage::execute(RexxActivation *
context=0x000007ffff7f9c40, RexxExpressionStack *
stack=0x000007ffff7f9d88)  Line 229     C++
        rexx.dll!RexxActivation::run(RexxObject *
_receiver=0x000007ffff0bf990, RexxString * msgname=0x000007ffff7f9be0,
RexxObject * * _arglist=0x000007ffff7f9b80, unsigned __int64
_argcount=0x0000000000000004, RexxInstruction *
start=0x0000000000000000, ProtectedObject & resultObj={...})  Line
522     C++
        rexx.dll!RexxCode::run(RexxActivity * activity=0x000007ffff5f89f0,
RexxMethod * method=0x000007fffebba740, RexxObject *
receiver=0x000007ffff0bf990, RexxString * msgname=0x000007ffff7f9be0,
RexxObject * * argPtr=0x000007ffff7f9b80, unsigned __int64
argcount=0x0000000000000004, ProtectedObject & result={...})  Line
136     C++
        rexx.dll!RexxMethod::run(RexxActivity * activity=0x000007ffff5f89f0,
RexxObject * receiver=0x000007ffff0bf990, RexxString *
msgname=0x000007ffff7f9be0, RexxObject * * argPtr=0x000007ffff7f9b80,
unsigned __int64 count=0x0000000000000004, ProtectedObject &
result={...})  Line 324 C++
        rexx.dll!RexxObject::messageSend(RexxString *
msgname=0x000007ffff7f9be0, RexxObject * *
arguments=0x000007ffff7f9b80, unsigned __int64
count=0x0000000000000004, ProtectedObject & result={...})  Line
793     C++
        rexx.dll!RexxObject::sendMessage(RexxString *
message=0x000007ffff7f9be0, RexxArray * arguments=0x000007ffff7f9b30,
ProtectedObject & result={...})  Line 677       C++
        rexx.dll!RexxObject::sendMessage(RexxString *
message=0x000007ffff7f9be0, RexxArray * args=0x000007ffff7f9b30)  Line
611     C++
        rexx.dll!SendMessageArray(RexxThreadContext_ * c=0x000007ffff5f8a18,
_RexxObjectPtr * o=0x000007ffff0bf990, const char *
m=0x00000000000e1790, _RexxArrayObject * a=0x000007ffff7f9b30)  Line
157     C++
>       oodialog.dll!RexxThreadContext_::SendMessageA(_RexxObjectPtr * 
> o=0x000007ffff0bf990, const char * msg=0x00000000000e1790, _RexxArrayObject * 
> arr=0x000007ffff7f9b30)  Line 732  C++
        oodialog.dll!searchNotifyTable(unsigned __int64
wParam=0x00000000000000c8, __int64 lParam=0x00000000029af490,
_pbdCSelf * pcpbd=0x000007ffff5eab10)  Line 995 C++
        oodialog.dll!searchMessageTables(unsigned long message=0x0000004e,
unsigned __int64 param=0x00000000000000c8, __int64
lparam=0x00000000029af490, _pbdCSelf * pcpbd=0x000007ffff5eab10)  Line
1306    C++
        oodialog.dll!RexxDlgProc(HWND__ * hDlg=0x000000000022033c, unsigned
int uMsg=0x0000004e, unsigned __int64 wParam=0x00000000000000c8,
__int64 lParam=0x00000000029af490)  Line 146    C++
        user32.dll!0000000077c34582()   
        user32.dll!0000000077c34bf2()   
        user32.dll!0000000077c5467c()   
        user32.dll!0000000077c43abc()   
        user32.dll!0000000077c4231f()   
        user32.dll!0000000077c423fd()   
        ntdll.dll!0000000077ef318f()    
        user32.dll!0000000077c420fa()   
        user32.dll!0000000077c3feed()   
        user32.dll!0000000077c4341b()   
        comctl32.dll!000007ff7f02c802()         
        comctl32.dll!000007ff7f073c02()         
        comctl32.dll!000007ff7f0748a0()         
        comctl32.dll!000007ff7f076146()         
        comctl32.dll!000007ff7f078a7b()         
        comctl32.dll!000007ff7f078ea5()         
        comctl32.dll!000007ff7f076ed8()         
        0000000b00000048()      
        0000000000000087()      
        0000000000102300()      
        00000000000b0048()      
        0000000000000001()      
        0000000000000081()      

--
Mark Miesfeld

------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to