concurrent-ruby 1.1.3 → 1.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e771744bb5e8ed6f2e29f284b92dc82c86052313e32ca6113ca14866316e888b
4
- data.tar.gz: 72f694ab26e04d3d0eba6966d22dc124e6c047bd34d0531c9f7c33ffca0f2962
3
+ metadata.gz: baa8a50b8b08ea03ec40438bf1e921d86a28c2ccc1292535bf9d72aab66fb659
4
+ data.tar.gz: cf77c2327c6527a2be4476c2e6464c2b90e86610ecf3543bcee5df5e2c6aa3b0
5
5
  SHA512:
6
- metadata.gz: 5b351d16a4a900ecefcfddfe282e30ab7c4c022c71aa3d596199cb9a4816adcc8eeedba6a219b8f239bba73ce992403ac40e9d4eb83038713edee9705262677c
7
- data.tar.gz: 8a49539c89fe3f073a0a89c1c79453a49132c0ba5ce575172f9592b62be98e35136f0c216c80660f1e0489c5b33ca62a7db5575866794231b0d81d0f0665c03d
6
+ metadata.gz: e9a34a06cc1efb94d36d986369efefb8df61bfe1bd4b0bf960ab84028bf68e6a60636fcaa453490b38c5ced3d8b628e62f92e2524dd08ac1912ccbb74ba40aeb
7
+ data.tar.gz: 51790fe6686917f9a11e5e8fc82af16959bdc7ef8111348bfaad010ad1babc97cfde0048407f98cf11002e789a53e5eddff65a58977f87c4825fab06d4a20a11
@@ -1,5 +1,10 @@
1
1
  ## Current
2
2
 
3
+ ## Release v1.1.4 (14 Dec 2018)
4
+
5
+ * (#780) Remove java_alias of 'submit' method of Runnable to let executor service work on java 11
6
+ * (#776) Fix NameError on defining a struct with a name which is already taken in an ancestor
7
+
3
8
  ## Release v1.1.3 (7 Nov 2018)
4
9
 
5
10
  * (#775) fix partial require of the gem (although not officially supported)
data/README.md CHANGED
@@ -43,7 +43,7 @@ appreciate your help. Would you like to contribute? Great! Have a look at
43
43
 
44
44
  *Concurrent Ruby makes one of the strongest thread safety guarantees of any Ruby concurrency
45
45
  library, providing consistent behavior and guarantees on all three of the main Ruby interpreters
46
- (MRI/CRuby, JRuby, and Rubinius).*
46
+ (MRI/CRuby, JRuby, Rubinius, TruffleRuby).*
47
47
 
48
48
  Every abstraction in this library is thread safe. Specific thread safety guarantees are documented
49
49
  with each abstraction.
@@ -59,7 +59,7 @@ Concurrent Ruby is also the only Ruby library which provides a full suite of thr
59
59
  immutable variable types and data structures.
60
60
 
61
61
  We've also initiated discussion to document [memory model](docs-source/synchronization.md) of Ruby which
62
- would provide consistent behaviour and guarantees on all three of the main Ruby interpreters
62
+ would provide consistent behaviour and guarantees on all four of the main Ruby interpreters
63
63
  (MRI/CRuby, JRuby, Rubinius, TruffleRuby).
64
64
 
65
65
  ## Features & Documentation
data/Rakefile CHANGED
@@ -18,11 +18,10 @@ edge_gemspec = Gem::Specification.load File.join(__dir__, 'concurrent-ruby-edge.
18
18
 
19
19
  require 'rake/javaextensiontask'
20
20
 
21
- JRUBY_JAR_PATH = '/usr/local/opt/rbenv/versions/jruby-9.1.17.0/lib/jruby.jar'
22
-
23
21
  class ConcurrentRubyJavaExtensionTask < Rake::JavaExtensionTask
24
22
  def java_classpath_arg(*args)
25
23
  jruby_cpath = nil
24
+
26
25
  if RUBY_PLATFORM =~ /java/
27
26
  begin
28
27
  cpath = Java::java.lang.System.getProperty('java.class.path').split(File::PATH_SEPARATOR)
@@ -30,11 +29,26 @@ class ConcurrentRubyJavaExtensionTask < Rake::JavaExtensionTask
30
29
  jruby_cpath = cpath.compact.join(File::PATH_SEPARATOR)
31
30
  rescue => e
32
31
  end
32
+
33
+ unless jruby_cpath
34
+ libdir = RbConfig::CONFIG['libdir']
35
+ if libdir.start_with? "classpath:"
36
+ raise 'Cannot build with jruby-complete'
37
+ end
38
+ jruby_cpath = File.join(libdir, "jruby.jar")
39
+ end
33
40
  end
41
+
34
42
  unless jruby_cpath
35
- jruby_cpath = JRUBY_JAR_PATH
36
- raise "#{jruby_cpath} does not exist" unless File.exist? jruby_cpath
43
+ jruby_home = ENV['JRUBY_HOME']
44
+ if jruby_home
45
+ candidate = File.join(jruby_home, 'lib', 'jruby.jar')
46
+ jruby_cpath = candidate if File.exist? candidate
47
+ end
37
48
  end
49
+
50
+ raise "jruby.jar path not found" unless jruby_cpath
51
+
38
52
  jruby_cpath += File::PATH_SEPARATOR + args.join(File::PATH_SEPARATOR) unless args.empty?
39
53
  jruby_cpath ? "-cp \"#{jruby_cpath}\"" : ""
40
54
  end
@@ -63,7 +77,9 @@ namespace :repackage do
63
77
  desc '* with Windows fat distributions'
64
78
  task :all do
65
79
  Dir.chdir(__dir__) do
80
+ # store gems in vendor cache for docker
66
81
  sh 'bundle package'
82
+
67
83
  # needed only if the jar is built outside of docker
68
84
  Rake::Task['lib/concurrent/concurrent_ruby.jar'].invoke
69
85
  RakeCompilerDock.exec 'support/cross_building.sh'
@@ -119,7 +135,7 @@ rescue LoadError => e
119
135
  puts 'RSpec is not installed, skipping test task definitions: ' + e.message
120
136
  end
121
137
 
122
- current_yard_version_name = Concurrent::VERSION.split('.')[0..2].join('.')
138
+ current_yard_version_name = [*Concurrent::VERSION.split('.')[0..1], 'x'].join('.')
123
139
 
124
140
  begin
125
141
  require 'yard'
@@ -20,13 +20,12 @@ if Concurrent.on_jruby?
20
20
 
21
21
  def initialize(*args, &block)
22
22
  super
23
- ns_make_executor_runnable
24
23
  end
25
24
 
26
25
  def post(*args, &task)
27
26
  raise ArgumentError.new('no block given') unless block_given?
28
27
  return handle_fallback(*args, &task) unless running?
29
- @executor.submit_runnable Job.new(args, task)
28
+ @executor.submit Job.new(args, task)
30
29
  true
31
30
  rescue Java::JavaUtilConcurrent::RejectedExecutionException
32
31
  raise RejectedExecutionError
@@ -75,14 +74,6 @@ if Concurrent.on_jruby?
75
74
  @executor.isShutdown || @executor.isTerminated
76
75
  end
77
76
 
78
- def ns_make_executor_runnable
79
- if !defined?(@executor.submit_runnable)
80
- @executor.class.class_eval do
81
- java_alias :submit_runnable, :submit, [java.lang.Runnable.java_class]
82
- end
83
- end
84
- end
85
-
86
77
  class Job
87
78
  include Runnable
88
79
  def initialize(args, block)
@@ -138,7 +138,7 @@ module Concurrent
138
138
  end
139
139
  unless name.nil?
140
140
  begin
141
- parent.send :remove_const, name if parent.const_defined? name
141
+ parent.send :remove_const, name if parent.const_defined?(name, false)
142
142
  parent.const_set(name, clazz)
143
143
  clazz
144
144
  rescue NameError
@@ -1,4 +1,4 @@
1
1
  module Concurrent
2
- VERSION = '1.1.3'
2
+ VERSION = '1.1.4'
3
3
  EDGE_VERSION = '0.4.1'
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: concurrent-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jerry D'Antonio
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2018-11-07 00:00:00.000000000 Z
13
+ date: 2018-12-15 00:00:00.000000000 Z
14
14
  dependencies: []
15
15
  description: |
16
16
  Modern concurrency tools including agents, futures, promises, thread pools, actors, supervisors, and more.