I seem to have created a situation where the garbage collector gets in an infinite loop.
I added one section of code where I create a RexxBufferObject for a struct, and now when a program ends and the interpreter goes to terminate, it seems to get stuck in an infinite loop. I can see the CPU at 100%. I attach the debugger and break all, then run / break, run / break and it is always somewhere in the collectAndUninit / collect / sweep ... cycle. The code is no different than what I've been doing, basically: RexxBufferObject pddBuffer = c->NewBuffer(sizeof(pCDynamicDialog)); if ( pddBuffer == NULLOBJECT ) { goto done_out; } pCDynamicDialog pcdd = (pCDynamicDialog)c->BufferData(pddBuffer); memset(pcdd, 0, sizeof(CDynamicDialog)); pcdd->dlgAdm = pcpbd->dlgAdm; //c->SetObjectVariable("DYNAMICCSELF", pddBuffer); I tried commenting out setting the object variable to see if that would clear things up, but it didn't If I comment out the whole section then everything works again. I've been making changes and doing a lot of testing as I go, and it really seems as though adding that one allocation of NewBuffer() is causing this. I'm stumped. <grin> I'll attach the stack traces, in a file, for doing the break several times so you can look at it when you have time. -- Mark Miesfeld
show.rick
Description: Binary data
------------------------------------------------------------------------------ Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day trial. Simplify your report design, integration and deployment - and focus on what you do best, core application coding. Discover what's new with Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________ Oorexx-devel mailing list Oorexx-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/oorexx-devel