-
Notifications
You must be signed in to change notification settings - Fork 247
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
Add support for JRuby using NIO.2 WatchService #462
Comments
I am willing to work on this. Might require some assistance though. Please let me know. |
@bratish Sure, have a look at the tutorial and there are some examples of importing a Java API in our samples directory. Once you have imported something, it's mostly just plain Ruby. |
Thanks, @headius. @floehopper has submitted a patch already. |
Any progress on this one? |
@donv I guess @floehopper PR was closed but hopefully we can still make this happen. Might need someone else to jump in on it. |
I'm afraid I'm unlikely to have time to work on the PR in the near future. I hope someone else can help. |
@floehopper No worries, hopefully what you have will be a good start for someone. I tweeted out a call for help! |
No updates on my end. It appears that MacOS still does not have a good way to implement this on JVM, so any NIO-based version should probably just be used on Linux and Windows which both have good file notification APIs. I don't have time to work on this currently though. |
I believe listen on JRuby will fall back on a polling implementation currently, since most of the adapters require C extensions. Specifically, I was looking at the Windows adapter, which needs the "wdm" extension on CRuby.
However, JRuby runs on the JDK, which has a built-in, cross-platform filesystem eventing API:
https://docs.oracle.com/javase/tutorial/essential/io/notification.html
Judging by the other adapters, it seems like we wouldn't need to write much code to support efficient filesystem monitoring for JRuby on all platforms where the JDK exists (which is pretty much all platforms).
Opening this issue in case someone with more time than me wants to give it a shot.
The text was updated successfully, but these errors were encountered: