concurrent-ruby 1.1.9 → 1.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +14 -0
- data/Gemfile +2 -7
- data/README.md +17 -21
- data/Rakefile +2 -12
- data/ext/concurrent-ruby/com/concurrent_ruby/ext/JavaAtomicFixnumLibrary.java +0 -0
- data/ext/concurrent-ruby/com/concurrent_ruby/ext/JavaSemaphoreLibrary.java +52 -22
- data/lib/concurrent-ruby/concurrent/async.rb +1 -0
- data/lib/concurrent-ruby/concurrent/atomic/atomic_reference.rb +1 -0
- data/lib/concurrent-ruby/concurrent/atomic/event.rb +2 -2
- data/lib/concurrent-ruby/concurrent/atomic/mutex_semaphore.rb +18 -2
- data/lib/concurrent-ruby/concurrent/atomic/reentrant_read_write_lock.rb +4 -6
- data/lib/concurrent-ruby/concurrent/atomic/semaphore.rb +26 -5
- data/lib/concurrent-ruby/concurrent/concurrent_ruby.jar +0 -0
- data/lib/concurrent-ruby/concurrent/executor/abstract_executor_service.rb +16 -13
- data/lib/concurrent-ruby/concurrent/executor/fixed_thread_pool.rb +13 -3
- data/lib/concurrent-ruby/concurrent/executor/java_executor_service.rb +1 -1
- data/lib/concurrent-ruby/concurrent/executor/java_thread_pool_executor.rb +4 -0
- data/lib/concurrent-ruby/concurrent/executor/ruby_executor_service.rb +10 -4
- data/lib/concurrent-ruby/concurrent/executor/ruby_thread_pool_executor.rb +26 -37
- data/lib/concurrent-ruby/concurrent/executor/safe_task_executor.rb +5 -5
- data/lib/concurrent-ruby/concurrent/map.rb +0 -1
- data/lib/concurrent-ruby/concurrent/scheduled_task.rb +29 -16
- data/lib/concurrent-ruby/concurrent/synchronization/lockable_object.rb +1 -3
- data/lib/concurrent-ruby/concurrent/timer_task.rb +11 -33
- data/lib/concurrent-ruby/concurrent/tvar.rb +20 -60
- data/lib/concurrent-ruby/concurrent/utility/monotonic_time.rb +67 -35
- data/lib/concurrent-ruby/concurrent/utility/processor_counter.rb +2 -35
- data/lib/concurrent-ruby/concurrent/version.rb +1 -1
- data/lib/concurrent-ruby/concurrent-ruby.rb +5 -1
- metadata +7 -7
@@ -79,47 +79,14 @@ module Concurrent
|
|
79
79
|
def compute_processor_count
|
80
80
|
if Concurrent.on_jruby?
|
81
81
|
java.lang.Runtime.getRuntime.availableProcessors
|
82
|
-
elsif Etc.respond_to?(:nprocessors) && (nprocessor = Etc.nprocessors rescue nil)
|
83
|
-
nprocessor
|
84
82
|
else
|
85
|
-
|
86
|
-
if os_name =~ /mingw|mswin/
|
87
|
-
require 'win32ole'
|
88
|
-
result = WIN32OLE.connect("winmgmts://").ExecQuery(
|
89
|
-
"select NumberOfLogicalProcessors from Win32_Processor")
|
90
|
-
result.to_enum.collect(&:NumberOfLogicalProcessors).reduce(:+)
|
91
|
-
elsif File.readable?("/proc/cpuinfo") && (cpuinfo_count = IO.read("/proc/cpuinfo").scan(/^processor/).size) > 0
|
92
|
-
cpuinfo_count
|
93
|
-
elsif File.executable?("/usr/bin/nproc")
|
94
|
-
IO.popen("/usr/bin/nproc --all", &:read).to_i
|
95
|
-
elsif File.executable?("/usr/bin/hwprefs")
|
96
|
-
IO.popen("/usr/bin/hwprefs thread_count", &:read).to_i
|
97
|
-
elsif File.executable?("/usr/sbin/psrinfo")
|
98
|
-
IO.popen("/usr/sbin/psrinfo", &:read).scan(/^.*on-*line/).size
|
99
|
-
elsif File.executable?("/usr/sbin/ioscan")
|
100
|
-
IO.popen("/usr/sbin/ioscan -kC processor", &:read).scan(/^.*processor/).size
|
101
|
-
elsif File.executable?("/usr/sbin/pmcycles")
|
102
|
-
IO.popen("/usr/sbin/pmcycles -m", &:read).count("\n")
|
103
|
-
elsif File.executable?("/usr/sbin/lsdev")
|
104
|
-
IO.popen("/usr/sbin/lsdev -Cc processor -S 1", &:read).count("\n")
|
105
|
-
elsif File.executable?("/usr/sbin/sysconf") and os_name =~ /irix/i
|
106
|
-
IO.popen("/usr/sbin/sysconf NPROC_ONLN", &:read).to_i
|
107
|
-
elsif File.executable?("/usr/sbin/sysctl")
|
108
|
-
IO.popen("/usr/sbin/sysctl -n hw.ncpu", &:read).to_i
|
109
|
-
elsif File.executable?("/sbin/sysctl")
|
110
|
-
IO.popen("/sbin/sysctl -n hw.ncpu", &:read).to_i
|
111
|
-
else
|
112
|
-
# TODO (pitr-ch 05-Nov-2016): warn about failures
|
113
|
-
1
|
114
|
-
end
|
83
|
+
Etc.nprocessors
|
115
84
|
end
|
116
|
-
rescue
|
117
|
-
return 1
|
118
85
|
end
|
119
86
|
|
120
87
|
def compute_physical_processor_count
|
121
88
|
ppc = case RbConfig::CONFIG["target_os"]
|
122
|
-
when /
|
89
|
+
when /darwin\d\d/
|
123
90
|
IO.popen("/usr/sbin/sysctl -n hw.physicalcpu", &:read).to_i
|
124
91
|
when /linux/
|
125
92
|
cores = {} # unique physical ID / core ID combinations
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: concurrent-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jerry D'Antonio
|
8
8
|
- Petr Chalupa
|
9
9
|
- The Ruby Concurrency Team
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2022-03-22 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.
|
@@ -170,7 +170,7 @@ licenses:
|
|
170
170
|
metadata:
|
171
171
|
source_code_uri: https://github.com/ruby-concurrency/concurrent-ruby
|
172
172
|
changelog_uri: https://github.com/ruby-concurrency/concurrent-ruby/blob/master/CHANGELOG.md
|
173
|
-
post_install_message:
|
173
|
+
post_install_message:
|
174
174
|
rdoc_options: []
|
175
175
|
require_paths:
|
176
176
|
- lib/concurrent-ruby
|
@@ -178,15 +178,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
178
178
|
requirements:
|
179
179
|
- - ">="
|
180
180
|
- !ruby/object:Gem::Version
|
181
|
-
version:
|
181
|
+
version: '2.2'
|
182
182
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
183
183
|
requirements:
|
184
184
|
- - ">="
|
185
185
|
- !ruby/object:Gem::Version
|
186
186
|
version: '0'
|
187
187
|
requirements: []
|
188
|
-
rubygems_version: 3.
|
189
|
-
signing_key:
|
188
|
+
rubygems_version: 3.3.4
|
189
|
+
signing_key:
|
190
190
|
specification_version: 4
|
191
191
|
summary: Modern concurrency tools for Ruby. Inspired by Erlang, Clojure, Scala, Haskell,
|
192
192
|
F#, C#, Java, and classic concurrency patterns.
|