Here, wouldn't it make more sense to use `std::sync::Once` instead of `spin::Once`? We really don't want threads spinning while we wait for the file open operation to complete (and we can't try to open the file more than once concurrently, because we want to minimize the number of file handles we try to acquire).