on theHandler
# do things
send theHandler to me in 1 millisecond
end theHandler
Would this trigger a Metacard recursion count?
It shouldn't. What happens is this:
1. theHandler is triggered.
2. A message is queued to trigger theHandler again.
3. theHandler finishes executing.
4. theHandler is triggered by the pending message.
As you can see, the first copy of the handler completes and exits in step 3. Thus, you only have one copy of the handler in memory at once.
On the other hand, this:
on theHandler
# do things
theHandler
end theHandler
Produces this result:
1. theHandler is triggered.
2. theHandler calls a second copy of itself.
3. The second copy calls a third.
4. The third copy calls a fourth.
...
After 4 steps there are 4 handlers in memory, and you are recursing. The first copy can't release until the second does, the second is waiting for the third, the third is waiting on the fourth, etc. Until all of those handlers start terminating without recursing any further, you'll just keep on eating memory- and Metacard will bail you out with an error.
HTH,
Brian
- Recursion Shari
- RE: Recursion Yates, Glen
- RE: Recursion Shari
- Re: Recursion Yennie
- Re: Recursion Shari
- Re: Recursion Richard K. Herz