We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents b1e1fc8 + ae9ac30 commit d7f9085Copy full SHA for d7f9085
2 files changed
lib/pf2.rb
@@ -30,5 +30,10 @@ def self.profile(**kwargs, &block)
30
result = stop
31
@@session = nil # let GC clean up the session
32
result
33
+ ensure
34
+ if defined?(@@session) && @@session != nil
35
+ stop
36
+ @@session = nil
37
+ end
38
end
39
test/pf2_test.rb
@@ -39,4 +39,16 @@ def test_profile_passes_custom_options_to_start
def test_profile_raises_error_when_called_without_block
40
assert_raises(ArgumentError, "block required") { Pf2.profile }
41
42
+
43
+ def test_profile_stops_session_even_if_given_block_raises
44
+ begin
45
+ Pf2.profile do
46
+ raise
47
48
+ rescue
49
+ # nice catch, do nothing
50
51
52
+ assert_nil Pf2.class_variable_get(:@@session)
53
54
0 commit comments