aboutsummaryrefslogtreecommitdiffstats
path: root/lib/roo/tempdir.rb
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2025-11-26 19:02:46 -0500
committerLibravatarUnit 193 <unit193@unit193.net>2025-11-26 19:02:46 -0500
commitc77a15eed515fe6dc9b2e831670f4d484e23dace (patch)
tree87c79155c0b52b0e59eaf971f2b5bf9d860c77e4 /lib/roo/tempdir.rb
parent537c7673bedbb1a2f77a3a088710546cb46506d0 (diff)
parentc62f8376a13e7a4f493167aba1c66a9201fc59c6 (diff)
Update upstream source from tag 'upstream/3.0.0'
Update to upstream version '3.0.0' with Debian dir ceed7b02bc1417ad11993c466d2350a6b62fbecf
Diffstat (limited to 'lib/roo/tempdir.rb')
-rw-r--r--lib/roo/tempdir.rb5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/roo/tempdir.rb b/lib/roo/tempdir.rb
index 4be755b..7ad7989 100644
--- a/lib/roo/tempdir.rb
+++ b/lib/roo/tempdir.rb
@@ -4,7 +4,10 @@ module Roo
if @tempdirs && (dirs_to_remove = @tempdirs[object_id])
@tempdirs.delete(object_id)
dirs_to_remove.each do |dir|
- ::FileUtils.remove_entry(dir)
+ # Pass force=true to avoid an exception (and thus warnings in Ruby 3.1) if dir has
+ # already been removed. This can occur when the finalizer is called both in a forked
+ # child process and in the parent.
+ ::FileUtils.remove_entry(dir, true)
end
end
end