mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-19 06:31:18 +00:00
Windows/Path.inc: [PR6270] PathV1::makeUnique(): Give arbitrary initial seed for workaround.
FIXME: We should use sys::fs::unique_file() in future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127723 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
124d0332db
commit
bfb25cd97c
@ -882,7 +882,17 @@ Path::makeUnique(bool reuse_current, std::string* ErrMsg) {
|
||||
// Find a numeric suffix that isn't used by an existing file. Assume there
|
||||
// won't be more than 1 million files with the same prefix. Probably a safe
|
||||
// bet.
|
||||
static unsigned FCounter = 0;
|
||||
static int FCounter = -1;
|
||||
if (FCounter < 0) {
|
||||
// Give arbitrary initial seed.
|
||||
// FIXME: We should use sys::fs::unique_file() in future.
|
||||
LARGE_INTEGER cnt64;
|
||||
DWORD x = GetCurrentProcessId();
|
||||
x = (x << 16) | (x >> 16);
|
||||
if (QueryPerformanceCounter(&cnt64)) // RDTSC
|
||||
x ^= cnt64.HighPart ^ cnt64.LowPart;
|
||||
FCounter = x % 1000000;
|
||||
}
|
||||
do {
|
||||
sprintf(FNBuffer+offset, "-%06u", FCounter);
|
||||
if (++FCounter > 999999)
|
||||
|
Loading…
x
Reference in New Issue
Block a user