Hello community, here is the log from the commit of package rubygem-rb-inotify for openSUSE:Factory checked in at 2020-01-27 20:18:21 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rubygem-rb-inotify (Old) and /work/SRC/openSUSE:Factory/.rubygem-rb-inotify.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rubygem-rb-inotify" Mon Jan 27 20:18:21 2020 rev:6 rq:767660 version:0.10.1 Changes: -------- --- /work/SRC/openSUSE:Factory/rubygem-rb-inotify/rubygem-rb-inotify.changes 2019-03-04 09:21:11.084592241 +0100 +++ /work/SRC/openSUSE:Factory/.rubygem-rb-inotify.new.26092/rubygem-rb-inotify.changes 2020-01-27 20:18:38.216566459 +0100 @@ -1,0 +2,7 @@ +Mon Jan 27 11:27:36 UTC 2020 - Manuel Schnitzer <[email protected]> + +- updated to version 0.10.1 + + no changelog found + +------------------------------------------------------------------- Old: ---- rb-inotify-0.10.0.gem New: ---- rb-inotify-0.10.1.gem ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rubygem-rb-inotify.spec ++++++ --- /var/tmp/diff_new_pack.2rNx5I/_old 2020-01-27 20:18:38.892566871 +0100 +++ /var/tmp/diff_new_pack.2rNx5I/_new 2020-01-27 20:18:38.892566871 +0100 @@ -1,7 +1,7 @@ # # spec file for package rubygem-rb-inotify # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -24,7 +24,7 @@ # Name: rubygem-rb-inotify -Version: 0.10.0 +Version: 0.10.1 Release: 0 %define mod_name rb-inotify %define mod_full_name %{mod_name}-%{version} ++++++ rb-inotify-0.10.0.gem -> rb-inotify-0.10.1.gem ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.travis.yml new/.travis.yml --- old/.travis.yml 2018-12-16 00:08:21.000000000 +0100 +++ new/.travis.yml 2019-12-24 07:43:17.000000000 +0100 @@ -11,11 +11,9 @@ - rvm: truffleruby - rvm: jruby-head - rvm: ruby-head - - rvm: rbx-3 allow_failures: - rvm: truffleruby - rvm: jruby - rvm: ruby-head - rvm: jruby-head - - rvm: rbx-3 fast_finish: true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/LICENSE.md new/LICENSE.md --- old/LICENSE.md 2018-12-16 00:08:21.000000000 +0100 +++ new/LICENSE.md 2019-12-24 07:43:17.000000000 +0100 @@ -1,7 +1,7 @@ -# The MIT License (MIT) +# The MIT License -Copyright, 2009, by [Natalie Weizenbaum](https://github.com/nex3). -Copyright, 2017, by [Samuel G. D. Williams](http://www.codeotaku.com/samuel-williams). +Copyright, 2009, by [Natalie Weizenbaum](https://github.com/nex3). +Copyright, 2017, by [Samuel G. D. Williams](http://www.codeotaku.com). Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/README.md new/README.md --- old/README.md 2018-12-16 00:08:21.000000000 +0100 +++ new/README.md 2019-12-24 07:43:17.000000000 +0100 @@ -10,7 +10,7 @@ [](https://codeclimate.com/github/guard/rb-inotify) [](https://coveralls.io/r/guard/rb-inotify) -## Basic Usage +## Usage The API is similar to the inotify C API, but with a more Rubyish feel. First, create a notifier: @@ -69,6 +69,16 @@ JRuby currently doesn't use native file descriptors for the IO object, so we can't use the notifier's file descriptor as a stand-in. +### Resource Limits + +If you get an error like `inotify event queue has overflowed` you might be running into system limits. You can add the following to your `/etc/sysctl.conf` to increase the number of files that can be monitored: + +``` +fs.inotify.max_user_watches = 100000 +fs.inotify.max_queued_events = 100000 +fs.inotify.max_user_instances = 100000 +``` + ## Contributing 1. Fork it Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/rb-inotify/notifier.rb new/lib/rb-inotify/notifier.rb --- old/lib/rb-inotify/notifier.rb 2018-12-16 00:08:21.000000000 +0100 +++ new/lib/rb-inotify/notifier.rb 2019-12-24 07:43:17.000000000 +0100 @@ -51,12 +51,18 @@ def initialize @running = Mutex.new @pipe = IO.pipe + # JRuby shutdown sometimes runs IO finalizers before all threads finish. + if RUBY_ENGINE == 'jruby' + @pipe[0].autoclose = false + @pipe[1].autoclose = false + end @watchers = {} fd = Native.inotify_init unless fd < 0 @handle = IO.new(fd) + @handle.autoclose = false if RUBY_ENGINE == 'jruby' return end @@ -224,10 +230,13 @@ # @see #process def run @running.synchronize do + Thread.current[:INOTIFY_RUN_THREAD] = true @stop = false process until @stop end + ensure + Thread.current[:INOTIFY_RUN_THREAD] = false end # Stop watching for filesystem events. @@ -237,8 +246,10 @@ @stop = true @pipe.last.write "." - @running.synchronize do - # no-op: we just needed to wait until the lock was available + unless Thread.current[:INOTIFY_RUN_THREAD] + @running.synchronize do + # no-op: we just needed to wait until the lock was available + end end end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/lib/rb-inotify/version.rb new/lib/rb-inotify/version.rb --- old/lib/rb-inotify/version.rb 2018-12-16 00:08:21.000000000 +0100 +++ new/lib/rb-inotify/version.rb 2019-12-24 07:43:17.000000000 +0100 @@ -20,5 +20,5 @@ # THE SOFTWARE. module INotify - VERSION = '0.10.0' + VERSION = '0.10.1' end diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/metadata new/metadata --- old/metadata 2018-12-16 00:08:21.000000000 +0100 +++ new/metadata 2019-12-24 07:43:17.000000000 +0100 @@ -1,7 +1,7 @@ --- !ruby/object:Gem::Specification name: rb-inotify version: !ruby/object:Gem::Version - version: 0.10.0 + version: 0.10.1 platform: ruby authors: - Natalie Weizenbaum @@ -9,7 +9,7 @@ autorequire: bindir: bin cert_chain: [] -date: 2018-12-15 00:00:00.000000000 Z +date: 2019-12-24 00:00:00.000000000 Z dependencies: - !ruby/object:Gem::Dependency name: ffi @@ -127,8 +127,7 @@ - !ruby/object:Gem::Version version: '0' requirements: [] -rubyforge_project: -rubygems_version: 2.7.8 +rubygems_version: 3.0.4 signing_key: specification_version: 4 summary: A Ruby wrapper for Linux inotify, using FFI diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/spec/notifier_spec.rb new/spec/notifier_spec.rb --- old/spec/notifier_spec.rb 2018-12-16 00:08:21.000000000 +0100 +++ new/spec/notifier_spec.rb 2019-12-24 07:43:17.000000000 +0100 @@ -101,6 +101,16 @@ expect(events.map(&:name)).to match_array(%w(one.txt two.txt)) end + + it "can be stopped from within a callback" do + barriers = Array.new(3) { Concurrent::Event.new } + barrier_queue = barriers.dup + events = recording(dir, :create) { @notifier.stop } + + run_thread = Thread.new { @notifier.run } + dir.join("one.txt").write("hello world") + run_thread.join + end end describe :fd do
