rubygem-concurrent-ruby

This commit is contained in:
wanglin 2020-08-28 14:34:46 +08:00
parent 47a430e198
commit f72922d428
6 changed files with 90 additions and 0 deletions

View File

@ -0,0 +1,18 @@
diff --git a/lib/concurrent/map.rb b/lib/concurrent/map.rb
index f3aa55d5..34696efc 100644
--- a/lib/concurrent/map.rb
+++ b/lib/concurrent/map.rb
@@ -210,12 +210,8 @@ module Concurrent
undef :freeze
# @!visibility private
- DEFAULT_OBJ_ID_STR_WIDTH = 0.size == 4 ? 7 : 14 # we want to look "native", 7 for 32-bit, 14 for 64-bit
- # override default #inspect() method: firstly, we don't want to be spilling our guts (i-vars), secondly, MRI backend's
- # #inspect() call on its @backend i-var will bump @backend's iter level while possibly yielding GVL
def inspect
- id_str = (object_id << 1).to_s(16).rjust(DEFAULT_OBJ_ID_STR_WIDTH, '0')
- "#<#{self.class.name}:0x#{id_str} entries=#{size} default_proc=#{@default_proc.inspect}>"
+ format '%s entries=%d default_proc=%s>', to_s[0..-2], size.to_s, @default_proc.inspect
end
private

Binary file not shown.

BIN
concurrent-ruby-1.0.5.gem Normal file

Binary file not shown.

View File

@ -0,0 +1,68 @@
%global gem_name concurrent-ruby
Name: rubygem-%{gem_name}
Version: 1.0.5
Release: 1
Summary: Modern concurrency tools for Ruby
License: MIT
URL: http://www.concurrent-ruby.com
Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem
Source1: https://github.com/ruby-concurrency/concurrent-ruby/archive/v1.0.5.tar.gz
# Avoid sporadic test failures due to wrong object_id formatting.
# https://github.com/ruby-concurrency/concurrent-ruby/pull/651
Patch1: concurrent-ruby-1.0.5-fix-inspect-output.patch
BuildRequires: ruby(release) rubygems-devel ruby >= 1.9.3 rubygem(rspec) rubygem(timecop)
BuildArch: noarch
%description
Modern concurrency tools including agents, futures, promises, thread pools,
actors, supervisors, and more.
Inspired by Erlang, Clojure, Go, JavaScript, actors, and classic concurrency
patterns.
%package doc
Summary: Documentation for %{name}
Requires: %{name} = %{version}-%{release}
BuildArch: noarch
%description doc
Documentation for %{name}.
%prep
gem unpack %{SOURCE0}
%setup -q -D -T -n %{gem_name}-%{version}
gem spec %{SOURCE0} -l --ruby > %{gem_name}.gemspec
%patch1 -p1
%build
gem build %{gem_name}.gemspec
%gem_install
%install
mkdir -p %{buildroot}%{gem_dir}
cp -a .%{gem_dir}/* \
%{buildroot}%{gem_dir}/
%check
pushd .%{gem_instdir}
tar xzf %{SOURCE1}
ln -s v1.0.5/spec spec
sed -i '/require.*concurrent-edge/ s/^/#/' spec/spec_helper.rb
sed -i '/allow_c_extensions?/,/^ end/ s/^/#/' spec/concurrent/atomic/atomic_reference_spec.rb
rspec -rspec_helper \
--exclude-pattern 'spec/concurrent/{actor_spec.rb,channel_spec.rb,lazy_register_spec.rb,channel/**/*,atomic/atomic_markable_reference_spec.rb,edge/**/*}' \
spec
popd
%files
%dir %{gem_instdir}
%license %{gem_instdir}/LICENSE.txt
%{gem_libdir}
%exclude %{gem_cache}
%{gem_spec}
%files doc
%doc %{gem_docdir}
%doc %{gem_instdir}/CHANGELOG.md
%doc %{gem_instdir}/README.md
%changelog
* Tue Aug 18 2020 wanglin <wanglin175@huawei.com> - 1.0.5-1
- package init

View File

@ -0,0 +1,4 @@
version_control: github
src_repo: ruby-concurrency/concurrent-ruby
tag_prefix: "^v"
separator: "."

BIN
v1.0.5.tar.gz Normal file

Binary file not shown.