Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A fix for fs.WatchFile delays #38

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

cardboardfox
Copy link

@cardboardfox cardboardfox commented Jan 19, 2019

I noticed some lag between an event occurring in Hearthstone and being presented in Farseer. On closer inspection, it seems that fs.WatchFile has a default polling rate of 5007 milliseconds. I added an option with a lower default polling time of 250 (if that's too fast, it can be changed to something more reasonable.)

I saw that some code had been added to prevent duplicate events from firing off fs.WatchFile, which seems to be a known bug, but realized since the Hearthstone output log only grows, we could instead monitor fs.Stats' size property to see if we're looking at the same event.

@gregstewart
Copy link
Owner

Thanks for the submission @cardboardfox. I will have a look at this in more depth this week and get back to you.

@losttime
Copy link

I'm pretty sure the log file gets rotated at some point. I'm not sure if it would happen while the client is running, or only between sessions, but I think it would be best to handle that case too.

@@ -3,7 +3,8 @@ import path from 'path';

export default function (log) {
let defaultOptions = {
endOfLineChar: os.EOL
endOfLineChar: os.EOL,
fsPollInterval: 250

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My personal preference would be to have the watch poll slightly less frequently. The data isn't super time-sensitive (though it would be nice to have sooner to better plan a next move) so I'd prefer not to have the additional overhead.

Maybe something like?:

Suggested change
fsPollInterval: 250
fsPollInterval: 1250

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants