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
[email protected]
https://lists.sourceforge.net/lists/listinfo/oorexx-devel