Update to 3.12.1
This commit is contained in:
parent
2546c2544e
commit
0f31abb0f9
@ -1,99 +0,0 @@
|
|||||||
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.1.gem
Normal file
BIN
rspec-support-3.12.1.gem
Normal file
Binary file not shown.
@ -1,5 +1,5 @@
|
|||||||
%global gem_name rspec-support
|
%global gem_name rspec-support
|
||||||
%global mainver 3.12.0
|
%global mainver 3.12.1
|
||||||
%undefine prever
|
%undefine prever
|
||||||
%global mainrel 1
|
%global mainrel 1
|
||||||
%global prerpmver %(echo "%{?prever}" | sed -e 's|\\.||g')
|
%global prerpmver %(echo "%{?prever}" | sed -e 's|\\.||g')
|
||||||
@ -7,14 +7,13 @@
|
|||||||
%undefine __brp_mangle_shebangs
|
%undefine __brp_mangle_shebangs
|
||||||
Name: rubygem-%{gem_name}
|
Name: rubygem-%{gem_name}
|
||||||
Version: %{mainver}
|
Version: %{mainver}
|
||||||
Release: 2
|
Release: 1
|
||||||
Summary: Common functionality to Rspec series
|
Summary: Common functionality to Rspec series
|
||||||
License: MIT
|
License: MIT
|
||||||
URL: https://github.com/rspec/rspec-support
|
URL: https://github.com/rspec/rspec-support
|
||||||
Source0: https://rubygems.org/gems/%{gem_name}-%{mainver}%{?prever}.gem
|
Source0: https://rubygems.org/gems/%{gem_name}-%{mainver}%{?prever}.gem
|
||||||
Source1: https://github.com/rspec/%{gem_name}/archive/v%{mainver}.tar.gz
|
Source1: https://github.com/rspec/%{gem_name}/archive/v%{mainver}.tar.gz
|
||||||
# tweak regex for search path
|
# tweak regex for search path
|
||||||
Patch1: 0001-fix-thread-dead-lock-error.patch
|
|
||||||
Patch100: rubygem-rspec-support-3.2.1-callerfilter-searchpath-regex.patch
|
Patch100: rubygem-rspec-support-3.2.1-callerfilter-searchpath-regex.patch
|
||||||
BuildRequires: rubygems-devel rubygem-simplecov rubygem(did_you_mean)
|
BuildRequires: rubygems-devel rubygem-simplecov rubygem(did_you_mean)
|
||||||
%if 0%{?need_bootstrap_set} < 1
|
%if 0%{?need_bootstrap_set} < 1
|
||||||
@ -36,7 +35,6 @@ Documentation for %{name}
|
|||||||
%prep
|
%prep
|
||||||
%setup -q -T -n %{gem_name}-%{version} -b 1
|
%setup -q -T -n %{gem_name}-%{version} -b 1
|
||||||
gem spec %{SOURCE0} -l --ruby > %{gem_name}.gemspec
|
gem spec %{SOURCE0} -l --ruby > %{gem_name}.gemspec
|
||||||
%patch1 -p1
|
|
||||||
%patch100 -p1
|
%patch100 -p1
|
||||||
|
|
||||||
|
|
||||||
@ -80,6 +78,9 @@ ruby -rrubygems -Ilib/ -S rspec spec/ || \
|
|||||||
%doc %{gem_docdir}
|
%doc %{gem_docdir}
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Nov 15 2023 wangkai <13474090681@163.com> - 3.12.1-1
|
||||||
|
- Update to 3.12.1
|
||||||
|
|
||||||
* Wed Jan 18 2023 Ge Wang <wangge20@h-partners.com> - 3.12.0-2
|
* Wed Jan 18 2023 Ge Wang <wangge20@h-partners.com> - 3.12.0-2
|
||||||
- Restore need_bootstrap_set flag after upgrade
|
- Restore need_bootstrap_set flag after upgrade
|
||||||
|
|
||||||
|
|||||||
BIN
v3.12.0.tar.gz
BIN
v3.12.0.tar.gz
Binary file not shown.
BIN
v3.12.1.tar.gz
Normal file
BIN
v3.12.1.tar.gz
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user