On Thu, Jan 20, 2000 at 01:31:15PM +0100, [EMAIL PROTECTED] wrote:
> thank you for the quickly provided patch. The script runs really better,
> terminates and finally reports:
> 
> [DBG] All watchers were cancelled:
>       1-27947-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0-0

Oh good.

> So, after a call of cancel(), I would expect a decreased IO watcher number. But
> it remains the same - until the next check. Then it IS decreased ... is this an
> intended delay?

Event is at the mercy of perl's reference counting mechanism.  Event
must delay deallocation of a cancelled watcher until perl releases all
references to it.

> If so, this may also be the explanation for these reports in the final cleanup
> loop:
> [...snip...]
>
> Here, the reported number of IO watchers remains the same for the entire
> cancel() loop. Then, finally, in a subsequent check, it was decreased to 0.

Yah.

> Finally, the event counters in slots 0 and 1 are never decreased. Checking the
> c installation subdirectory, I found that there are EvNew() calls for slots 0
> to 11, while EvFree() calls are only implemented for slots 2 to 11. Intended?

Yes.  Events & ioevents are never deallocated.  If you think this is a
problem then I can provide a function to deallocate everything on the
freelist.  However, I doubt that this is worthwhile.

> Nevertheless, the patched module is now installed and the server already runs
> on its base. Hopefully it no longer grows ...

Fantastic!  I'll upload a new release of Event to CPAN soon...

-- 
"Never ascribe to malice that which can be explained by stupidity."
                            via, but not speaking for Deutsche Bank

Reply via email to