Module: Mutant::Isolation::Fork

Defined in:
lib/mutant/isolation.rb

Class Method Summary collapse

Class Method Details

.call(&block) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Call block in isolation

This isolation implements the fork strategy. Future strategies will probably use a process pool that can handle multiple mutation kills, in-isolation at once.

Returns:

  • (Object)

    returns block execution result

Raises:

  • (Error)

    if block terminates abnormal



40
41
42
43
44
45
46
# File 'lib/mutant/isolation.rb', line 40

def self.call(&block)
  Parallel.map([block], in_processes: 1) do
    block.call
  end.first
rescue Parallel::DeadWorker => exception
  fail Error, exception
end