Sha256: 990e4bee2cfc1d430dc0b8ba4bbd122cd405b1e7c9f27b1340b6557c7da67046

Contents?: true

Size: 909 Bytes

Versions: 1

Compression:

Stored size: 909 Bytes

Contents

# frozen_string_literal: true

require 'bundler/setup'
require 'polyphony'

def sleep_and_cancel
  puts "#{Time.now} going to sleep with cancel..."
  cancel_after(1) do
    puts "#{Time.now} outer cancel scope"
    cancel_after(10) do
      puts "#{Time.now} inner cancel scope"
      sleep 60
    rescue Exception => e
      puts "#{Time.now} inner scope got error: #{e}"
      raise e
    end
  rescue Exception => e
    puts "#{Time.now} outer scope got error: #{e}"
  end
ensure
  puts "#{Time.now} woke up"
end

def sleep_and_move_on
  puts "#{Time.now} going to sleep with move_on..."
  move_on_after(1) do
    puts "#{Time.now} outer cancel scope"
    move_on_after(10) do
      puts "#{Time.now} inner cancel scope"
      sleep 60
      puts "#{Time.now} inner scope done"
    end
    puts "#{Time.now} outer scope done"
  end
  puts "#{Time.now} woke up"
end

sleep_and_cancel
puts
sleep_and_move_on

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
polyphony-0.23 examples/core/nested_cancel.rb