Expand description
git-style registered tempfiles that are removed upon typical termination signals.
To register signal handlers in a typical application that doesn’t have its own, call
git_tempfile::setup(Default::default())
before creating the first tempfile.
Signal handlers are powered by [signal-hook
] to get notified when the application is told to shut down
to assure tempfiles are deleted. The deletion is filtered by process id to allow forks to have their own
set of tempfiles that won’t get deleted when the parent process exits.
§Initial Setup
As no handlers for TERMination
are installed, it is required to call setup()
before creating the first tempfile.
This also allows to control how git-tempfiles
integrates with other handlers under application control.
As a general rule of thumb, use Default::default()
as argument to emulate the default behaviour and
abort the process after cleaning temporary files. Read more about options in SignalHandlerMode.
§Limitations
§Tempfiles might remain on disk
- Uninterruptible signals are received like
SIGKILL
- The application is performing a write operation on the tempfile when a signal arrives, preventing this tempfile to be removed, but not others. Any other operation dealing with the tempfile suffers from the same issue.
Modules§
Structs§
- Handle
- A registered temporary file which will delete itself on drop or if the program is receiving signals that should cause it to terminate.
Enums§
- Auto
Remove - A type expressing the ways we cleanup after ourselves to remove resources we created. Note that cleanup has no effect if the tempfile is persisted.
- Containing
Directory - A type expressing the ways we can deal with directories containing a tempfile.
- Signal
Handler Mode - Define how our signal handlers act
Functions§
- mark_at
- A shortcut to
Handle::<Closed>::at()
providing a closed temporary file to mark the presence of something. - new
- A shortcut to
Handle::<Writable>::new()
, creating a writable temporary file with non-clashing name in a directory. - setup
- Initialize signal handlers and other state to keep track of tempfiles, and must be called before the first tempfile is created,
allowing to set the
mode
in which signal handlers are installed. - writable_
at - A shortcut to
Handle::<Writable>::at()
providing a writable temporary file at the given path.