Skip to content

Instantly share code, notes, and snippets.

@davidbegin
Created September 25, 2015 06:14
Show Gist options
  • Save davidbegin/4eb619f7863f68a60d4c to your computer and use it in GitHub Desktop.
Save davidbegin/4eb619f7863f68a60d4c to your computer and use it in GitHub Desktop.
Thread#kill Thread#raise quiz
def example_1
clean_env = false
t = Thread.new do
begin
ensure
clean_env = true
end
end
t.kill
t.join
clean_env
end
def example_2
clean_env = false
t = Thread.new do
begin
ensure
sleep 1
clean_env = true
end
end
t.kill
t.join
clean_env
end
def example_3
clean_env = false
t = Thread.new do
begin
sleep 1
ensure
sleep 1
clean_env = true
end
end
t.kill
t.join
clean_env
end
def example_4
clean_env = false
t = Thread.new do
begin
ensure
clean_env = true
end
end
t.raise
begin
t.join
rescue
end
clean_env
end
def example_5
clean_env = false
t = Thread.new do
begin
ensure
sleep 1
clean_env = true
end
end
t.raise
begin
rescue
t.join
end
clean_env
end
def example_6
clean_env = false
t = Thread.new do
begin
sleep 1
ensure
sleep 1
clean_env = true
end
end
t.raise
begin
t.join
rescue
end
clean_env
end
require "minitest/autorun"
class ThreadTest < Minitest::Test
def test_example_1
assert_equal "choose either true of false", example_1
end
def test_example_2
assert_equal "choose either true of false", example_2
end
def test_example_3
assert_equal "choose either true of false", example_3
end
def test_example_4
assert_equal "choose either true of false", example_4
end
def test_example_5
assert_equal "choose either true of false", example_5
end
def test_example_6
assert_equal "choose either true of false", example_6
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment