Hello,
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
So, well!, the IO watcher count is reset to 0 as I expected. (It is still the
same script, I only improved the output format.)
Some messages are still unexpected to me:
[DBG] Entering IO watcher:
0-1-0-0-6-0-0-1-0-0-0-0-0-0-0-0-0-0-0-0
[DBG] Installed additional IO watchers:
0-1-0-0-12-0-0-1-0-0-0-0-0-0-0-0-0-0-0-0
[DBG] Cancelled the initial IO watcher:
0-1-0-0-12-0-0-1-0-0-0-0-0-0-0-0-0-0-0-0
[DBG] Entering IO watcher:
0-1-0-0-11-0-0-1-0-0-0-0-0-0-0-0-0-0-0-0
[DBG] Installed additional IO watchers:
0-1-0-0-17-0-0-1-0-0-0-0-0-0-0-0-0-0-0-0
[DBG] Cancelled the initial IO watcher:
0-1-0-0-17-0-0-1-0-0-0-0-0-0-0-0-0-0-0-0
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?
If so, this may also be the explanation for these reports in the final cleanup
loop:
[DBG] Cleaning up:
1-27947-0-0-1626-0-0-1-0-0-0-0-0-0-0-0-0-0-0-0
[DBG] Cleanup nr. 0:
1-27947-0-0-1626-0-0-1-0-0-0-0-0-0-0-0-0-0-0-0
[DBG] Cleanup nr. 1:
1-27947-0-0-1626-0-0-1-0-0-0-0-0-0-0-0-0-0-0-0
[DBG] Cleanup nr. 2:
1-27947-0-0-1626-0-0-1-0-0-0-0-0-0-0-0-0-0-0-0
...
...
[DBG] Cleanup nr. 1626:
1-27947-0-0-1626-0-0-1-0-0-0-0-0-0-0-0-0-0-0-0
[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
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.
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?
Nevertheless, the patched module is now installed and the server already runs
on its base. Hopefully it no longer grows ...
Greetings
Jochen