5 Dec
2007
5 Dec
'07
7:26 p.m.
On Wed, Dec 05, 2007 at 12:34:18PM -0300, Jorge Arellano Cid wrote:
The problem is reentrancy.
Aha! I did some testing and noticed that calls to a_IO_ccc were sometimes nested.
This bug was produced because a CCC operation was reentering the same chain after it was aborted. I added an extra check as a workaround to avoid this situation and a comment that a more generic solution should be designed.
Hmm, perhaps the CCC Chainlink structures could have an aborted flag and the chaining functions could call the callbacks only if the link was not aborted? Also, I noticed that a_Chain_unlink is never used. Is that intentional?
Patch is in CVS.
Problem solved. Yay! Regards, Jeremy Henty