OK, it seems that I found the problem now!
What happens is the following: Total Commander is listening for file system events with function WaitForMultipleObjects, where the dir in the left panel is the first object, and the dir in the second panel is the second objects. Now when BOTH sides have an event, Windows just reports that the first side has one - TC reads only the left side events until there are no more, and then starts with the right side events.
It seems that when there are many 100s of events, some internal Windows queue seems to get full, so events are lost. I changed this now to always check also the right side when WaitForMultipleObjects signals a left side event. This way it seems that no more events are lost.
Here is the batch file with which I could reproduce the problem (name it e.g. makefile.bat):
Code: Select all
FOR /L %%d IN (0,1,1000) DO echo . > %%d