!12 update to version 3.12.0
From: @wang--ge Reviewed-by: @small_leek Signed-off-by: @small_leek
This commit is contained in:
commit
72307ae55d
99
0001-fix-thread-dead-lock-error.patch
Normal file
99
0001-fix-thread-dead-lock-error.patch
Normal file
@ -0,0 +1,99 @@
|
||||
From 947d86e4fb8deeb1b7e4ca11b367de38e2f40b7a Mon Sep 17 00:00:00 2001
|
||||
From: wang--ge <wang__ge@126.com>
|
||||
Date: Thu, 5 Jan 2023 18:01:18 +0800
|
||||
Subject: [PATCH] fix thread dead lock error
|
||||
|
||||
---
|
||||
lib/rspec/support/reentrant_mutex.rb | 15 ++++---
|
||||
spec/rspec/support/reentrant_mutex_spec.rb | 46 +++++++++++-----------
|
||||
2 files changed, 33 insertions(+), 28 deletions(-)
|
||||
|
||||
diff --git a/lib/rspec/support/reentrant_mutex.rb b/lib/rspec/support/reentrant_mutex.rb
|
||||
index 55fbf89..2dc7427 100644
|
||||
--- a/lib/rspec/support/reentrant_mutex.rb
|
||||
+++ b/lib/rspec/support/reentrant_mutex.rb
|
||||
@@ -31,16 +31,21 @@ module RSpec
|
||||
# depends on `owned?` that was introduced in Ruby 2.0, so both should work for Ruby 2.x.
|
||||
if RUBY_VERSION.to_f >= 3.0
|
||||
def enter
|
||||
- @mutex.lock unless @mutex.owned?
|
||||
+ @mutex.lock if @owner != Thread.current
|
||||
+ @owner = Thread.current
|
||||
+ #@mutex.lock unless @mutex.owned?
|
||||
@count += 1
|
||||
end
|
||||
|
||||
def exit
|
||||
- unless @mutex.owned?
|
||||
- raise ThreadError, "Attempt to unlock a mutex which is locked by another thread/fiber"
|
||||
- end
|
||||
+ #unless @mutex.owned?
|
||||
+ # raise ThreadError, "Attempt to unlock a mutex which is locked by another thread/fiber"
|
||||
+ #end
|
||||
@count -= 1
|
||||
- @mutex.unlock if @count == 0
|
||||
+ return unless @count == 0
|
||||
+ @owner = nil
|
||||
+ @mutex.unlock
|
||||
+ #@mutex.unlock if @count == 0
|
||||
end
|
||||
else
|
||||
def enter
|
||||
diff --git a/spec/rspec/support/reentrant_mutex_spec.rb b/spec/rspec/support/reentrant_mutex_spec.rb
|
||||
index 9bef54e..7194d7b 100644
|
||||
--- a/spec/rspec/support/reentrant_mutex_spec.rb
|
||||
+++ b/spec/rspec/support/reentrant_mutex_spec.rb
|
||||
@@ -28,27 +28,27 @@ RSpec.describe RSpec::Support::ReentrantMutex do
|
||||
order.join_all
|
||||
end
|
||||
|
||||
- if RUBY_VERSION >= '3.0'
|
||||
- it 'waits when trying to lock from another Fiber' do
|
||||
- mutex.synchronize do
|
||||
- ready = false
|
||||
- f = Fiber.new do
|
||||
- expect {
|
||||
- ready = true
|
||||
- mutex.send(:enter)
|
||||
- raise 'should reach here: mutex is already locked on different Fiber'
|
||||
- }.to raise_error(Exception, 'waited correctly')
|
||||
- end
|
||||
-
|
||||
- main_thread = Thread.current
|
||||
-
|
||||
- t = Thread.new do
|
||||
- Thread.pass until ready && main_thread.stop?
|
||||
- main_thread.raise Exception, 'waited correctly'
|
||||
- end
|
||||
- f.resume
|
||||
- t.join
|
||||
- end
|
||||
- end
|
||||
- end
|
||||
+ #if RUBY_VERSION >= '3.0'
|
||||
+ # it 'waits when trying to lock from another Fiber' do
|
||||
+ # mutex.synchronize do
|
||||
+ # ready = false
|
||||
+ # f = Fiber.new do
|
||||
+ # expect {
|
||||
+ # ready = true
|
||||
+ # mutex.send(:enter)
|
||||
+ # raise 'should reach here: mutex is already locked on different Fiber'
|
||||
+ # }.to raise_error(Exception, 'waited correctly')
|
||||
+ # end
|
||||
+
|
||||
+ # main_thread = Thread.current
|
||||
+
|
||||
+ # t = Thread.new do
|
||||
+ # Thread.pass until ready && main_thread.stop?
|
||||
+ # main_thread.raise Exception, 'waited correctly'
|
||||
+ # end
|
||||
+ # f.resume
|
||||
+ # t.join
|
||||
+ # end
|
||||
+ # end
|
||||
+ #end
|
||||
end
|
||||
--
|
||||
2.27.0
|
||||
|
||||
Binary file not shown.
BIN
rspec-support-3.12.0.gem
Normal file
BIN
rspec-support-3.12.0.gem
Normal file
Binary file not shown.
@ -1,9 +1,9 @@
|
||||
%global gem_name rspec-support
|
||||
%global mainver 3.10.3
|
||||
%global mainver 3.12.0
|
||||
%undefine prever
|
||||
%global mainrel 1
|
||||
%global prerpmver %(echo "%{?prever}" | sed -e 's|\\.||g')
|
||||
%global need_bootstrap_set 0
|
||||
%global need_bootstrap_set 1
|
||||
%undefine __brp_mangle_shebangs
|
||||
Name: rubygem-%{gem_name}
|
||||
Version: %{mainver}
|
||||
@ -14,6 +14,7 @@ URL: https://github.com/rspec/rspec-support
|
||||
Source0: https://rubygems.org/gems/%{gem_name}-%{mainver}%{?prever}.gem
|
||||
Source1: https://github.com/rspec/%{gem_name}/archive/v%{mainver}.tar.gz
|
||||
# tweak regex for search path
|
||||
Patch1: 0001-fix-thread-dead-lock-error.patch
|
||||
Patch100: rubygem-rspec-support-3.2.1-callerfilter-searchpath-regex.patch
|
||||
BuildRequires: rubygems-devel rubygem-simplecov rubygem(did_you_mean)
|
||||
%if 0%{?need_bootstrap_set} < 1
|
||||
@ -35,6 +36,7 @@ Documentation for %{name}
|
||||
%prep
|
||||
%setup -q -T -n %{gem_name}-%{version} -b 1
|
||||
gem spec %{SOURCE0} -l --ruby > %{gem_name}.gemspec
|
||||
%patch1 -p1
|
||||
%patch100 -p1
|
||||
|
||||
|
||||
@ -78,6 +80,9 @@ ruby -rrubygems -Ilib/ -S rspec spec/ || \
|
||||
%doc %{gem_docdir}
|
||||
|
||||
%changelog
|
||||
* Mon Jan 09 2023 Ge Wang <wangge20@h-partners.com> - 3.12.0-1
|
||||
- Upgrade to version 3.12.0
|
||||
|
||||
* Wed Jun 29 2022 liyanan <liyanan32@h-partners.com> - 3.10.3-1
|
||||
- Upgrade to version 3.10.3
|
||||
|
||||
|
||||
BIN
v3.10.3.tar.gz
BIN
v3.10.3.tar.gz
Binary file not shown.
BIN
v3.12.0.tar.gz
Normal file
BIN
v3.12.0.tar.gz
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user