salieri: Support read-only mode if archive is already opened (#1807)

This improves shader cache resilience when people opens another program that touch the cache.zip.
This commit is contained in:
Mary 2020-12-13 08:46:07 +01:00 committed by GitHub
parent 19d18662ea
commit 6bc2733c17
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 124 additions and 25 deletions

View file

@ -496,5 +496,27 @@ namespace Ryujinx.Graphics.Gpu.Shader.Cache
}
}
}
public static bool IsArchiveReadOnly(string archivePath)
{
FileInfo info = new FileInfo(archivePath);
if (!info.Exists)
{
return false;
}
try
{
using (FileStream stream = info.Open(FileMode.Open, FileAccess.Read, FileShare.None))
{
return false;
}
}
catch (IOException)
{
return true;
}
}
}
}