summaryrefslogtreecommitdiff
path: root/spec/mspec/lib/mspec/guards/feature.rb
diff options
context:
space:
mode:
authornormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-06-27 10:09:33 +0000
committernormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-06-27 10:09:33 +0000
commit92f5653f452e28ff6094fdcc35e280e27470f8ce (patch)
treedcaaf733121369149883e957766260c1fdc2a0af /spec/mspec/lib/mspec/guards/feature.rb
parent6b534134a78e3e43c344682c3585e1abab015216 (diff)
process.c (waitpid_wait): do not set ECHILD prematurely
It is possible to have both MJIT and normal child processes alive, so we cannot set ECHILD based on such a guess. We can still elide waitpid(PID <= 0) calls if we have callers in vm->waiting_pids, however. For specs, ensure Process.waitall does not leak MJIT PIDs to Rubyspace. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'spec/mspec/lib/mspec/guards/feature.rb')
-rw-r--r--spec/mspec/lib/mspec/guards/feature.rb6
1 files changed, 6 insertions, 0 deletions
diff --git a/spec/mspec/lib/mspec/guards/feature.rb b/spec/mspec/lib/mspec/guards/feature.rb
index 30984e0cc5..4f1df1cabe 100644
--- a/spec/mspec/lib/mspec/guards/feature.rb
+++ b/spec/mspec/lib/mspec/guards/feature.rb
@@ -39,3 +39,9 @@ end
def with_feature(*features, &block)
FeatureGuard.new(*features).run_if(:with_feature, &block)
end
+
+MSpecEnv.class_eval do
+ def without_feature(*features, &block)
+ FeatureGuard.new(*features).run_unless(:without_feature, &block)
+ end
+end