user202729 / tex-fast-recompile

A Python module to speed up TeX compilation.
LaTeX Project Public License v1.3c
11 stars 0 forks source link

Watchdog does not detect file content change on shared folder #17

Closed SrikanthMohankumar closed 10 months ago

SrikanthMohankumar commented 10 months ago

Hi,

let you know that I recently tried your module and it’s working like a breeze! Thank you for developing such a useful tool.

I do have one question, though. I installed LuaLaTeX, Python, and the tex-fast-recompile module on my linux server, and placed the sample.tex file in a common shared path. When I edit the file on another windows system, nothing happens with the compilation. However, if I edit the file directly on the server, it works fine. Do you have any suggestions for how to overcome this issue?

user202729 commented 10 months ago

The file detection change is handled by the Python watchdog module (relevant code), maybe that can be inspected.

(I believe latexmk etc. uses a more inefficient but guaranteed way to check for file changed, namely re-read the file every X seconds. Of course, for good performance in this case, the checking cost would be relatively prohibitive)

$sleep_time = 2;        # time to sleep b/w checks for file changes in -pvc mode

Edit: Okay I can reproduce the issue.

There's some relevant information in https://github.com/gorakhargosh/watchdog/issues/504 or https://github.com/gorakhargosh/watchdog/issues/135 etc.

SrikanthMohankumar commented 10 months ago

Thank you for your prompt response and for providing information about the issue. I have read the relevant information in the links you provided and appreciate your help in trying to resolve this issue.

I was wondering if you have any further suggestions or solutions to overcome this issue? Would changing the $sleep_time variable to a smaller value help in detecting file changes more efficiently?

Thanks.

user202729 commented 10 months ago

I've implemented a new flag --polling-duration for this use case, read the help for more details.


Ideally the program could run both observers in parallel, with the PollingObserver at a slow rate, and warn the user if the second fires without the first, but that may be left for later.

SrikanthMohankumar commented 10 months ago

Oh, Great! Thanks.