Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
My Directory Recursive Sample Code
Message
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Environment versions
Visual FoxPro:
VFP 9
OS:
Windows 2000 SP4
Miscellaneous
Thread ID:
01022342
Message ID:
01022409
Views:
17
OK, I think I've figured out the deal...

Here is a quote from http://www.roguewave.com/support/docs/sourcepro/threadspl/6-1.html (I've bolded the pertinent part that seems to explain why we both recursed a different number of times on our systems)

"Following allocation, the operating system will grow the stack as needed by committing one-page blocks (4K on an x86 machine) out of the reserved stack memory. Once all of the reserved memory has been committed, the system will attempt to continue to grow the stack into the memory adjacent to the memory reserved for the stack.

Once the stack grows to the point where there is no free memory adjacent to the stack (and this may happen as soon as the initial reserve has been committed), the stack cannot grow any farther. At this point, further stack growth will produce exceptions
, error, or other unpredictable behavior. To avoid this situation, you should take care to specify a sufficient amount of reserved memory space for your stacks when you link your program."



>AFAIK, it's some kind of C stack limit.
>
>>I stand corrected. I just put a config.fpw with STACKSIZE=64000 in my startup folder, and while it did greatly increase the number of levels I could traverse, it bombed at 906 for the following...
>>
>>
pnCounter = 0
>>=mytest()
>>
>>FUNCTION MyTest()
>>	pnCounter = pnCounter + 1
>>	?pnCounter
>>	=mytest()
>>ENDFUNC
>>
Previous
Reply
Map
View

Click here to load this message in the networking platform