-
-
Notifications
You must be signed in to change notification settings - Fork 942
Closed
Labels
Milestone
Description
I've recently hit very strange JRuby behavior when developing new synchronization layer in concurrent-ruby in PR ruby-concurrency/concurrent-ruby#273 (comment).
The code seems to be working fine until it's compiled then it breaks. When while true is replaced with loop do it starts to work.
Following change is enough to break it, see pitr-ch/concurrent-ruby@c306a67 It fails on JRuby 1.7.19,20
Steps to reproduce:
- pull pitr-ch/concurrent-ruby@c306a67
bundle updatebundle exec rspec spec/concurrent/atomic/cyclic_barrier_spec.rbJRUBY_OPTS="-J-Djruby.jit.threshold=1 -J-Djruby.compile.mode=JIT" bundle exec rspec spec/concurrent/atomic/cyclic_barrier_spec.rbfailsJRUBY_OPTS="-J-Djruby.compile.mode=OFF" bundle exec rspec spec/concurrent/atomic/cyclic_barrier_spec.rbworks
It looks like the body of the CyclicBarrier#wait method is skipped breaking the internal state of CyclicBarrier.
Reactions are currently unavailable