Skip to content

A fix for fs.WatchFile delays#38

Open
cardboardfox wants to merge 1 commit intogregstewart:masterfrom
cardboardfox:master
Open

A fix for fs.WatchFile delays#38
cardboardfox wants to merge 1 commit intogregstewart:masterfrom
cardboardfox:master

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.

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