Skip to content

Commit d7f9085

Browse files
authored
Merge pull request #83 from osyoyu/ensure-cleanup
Ensure @@session is cleaned up
2 parents b1e1fc8 + ae9ac30 commit d7f9085

2 files changed

Lines changed: 17 additions & 0 deletions

File tree

lib/pf2.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,10 @@ def self.profile(**kwargs, &block)
3030
result = stop
3131
@@session = nil # let GC clean up the session
3232
result
33+
ensure
34+
if defined?(@@session) && @@session != nil
35+
stop
36+
@@session = nil
37+
end
3338
end
3439
end

test/pf2_test.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,16 @@ def test_profile_passes_custom_options_to_start
3939
def test_profile_raises_error_when_called_without_block
4040
assert_raises(ArgumentError, "block required") { Pf2.profile }
4141
end
42+
43+
def test_profile_stops_session_even_if_given_block_raises
44+
begin
45+
Pf2.profile do
46+
raise
47+
end
48+
rescue
49+
# nice catch, do nothing
50+
end
51+
52+
assert_nil Pf2.class_variable_get(:@@session)
53+
end
4254
end

0 commit comments

Comments
 (0)