rust-vmm / vmm-sys-util

Helpers and utilities used by multiple rust-vmm components and VMMs
BSD 3-Clause "New" or "Revised" License
78 stars 64 forks source link

Extend `TempFile` #202

Open JonathanWoollett-Light opened 1 year ago

JonathanWoollett-Light commented 1 year ago

A common use for TempFile is to get a unique path where a file can be created, modified and removed.

The current approach to this:

let file = TempFile::new();
let path = file.as_path();
drop(file);
// Use the path

This is awkward and introduces a race condition in that another call to mkstemp in another test after this test deletes the file could return the same path.

it would be useful to offer a better mechanism to support this.

andreeaflorescu commented 1 year ago

Hmm, interesting, I was thinking that creating a file should be more of a rare pattern, and typically you would work with references. I was expecting this pattern to only be used in things like main.rs. What is the functionality for which this is used?