From 2d8cfb73be110286533ba789e476e60ef3fa9ad2 Mon Sep 17 00:00:00 2001 From: Masaru Kimura Date: Tue, 9 Sep 2025 16:50:24 +0900 Subject: [PATCH 1/2] Fix torchvision.io.read_image{,_async}. Addressed to #1494. * Update src/TorchVision/IO/Image.cs. + Fix torchvision.io.read_image{,_async}. - Allow subsequent opening of the file for reading. --- src/TorchVision/IO/Image.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/TorchVision/IO/Image.cs b/src/TorchVision/IO/Image.cs index 691d24b7f..4bc995969 100644 --- a/src/TorchVision/IO/Image.cs +++ b/src/TorchVision/IO/Image.cs @@ -136,7 +136,7 @@ public enum ImageReadMode /// public static Tensor read_image(string filename, ImageReadMode mode = ImageReadMode.UNCHANGED, Imager imager = null) { - using (FileStream stream = File.Open(filename, FileMode.Open)) + using (FileStream stream = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.Read)) return (imager ?? DefaultImager).DecodeImage(stream, mode); } @@ -167,7 +167,7 @@ public static Tensor read_image(Stream stream, ImageReadMode mode = ImageReadMod public static async Task read_image_async(string filename, ImageReadMode mode = ImageReadMode.UNCHANGED, Imager imager = null) { - using (FileStream stream = File.Open(filename, FileMode.Open)) + using (FileStream stream = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.Read)) return await (imager ?? DefaultImager).DecodeImageAsync(stream, mode); } From d040c712d9cd2eb81434b9920d7e45f2b4eea298 Mon Sep 17 00:00:00 2001 From: Masaru Kimura Date: Tue, 9 Sep 2025 16:53:40 +0900 Subject: [PATCH 2/2] Fix torchvision.io.read_file_async. * Update src/TorchVision/File.cs. + Fix torchvision.io.read_file_async. - Allow subsequent opening of the file for reading. --- src/TorchVision/File.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TorchVision/File.cs b/src/TorchVision/File.cs index ea0c48cff..90cbe6daf 100644 --- a/src/TorchVision/File.cs +++ b/src/TorchVision/File.cs @@ -33,7 +33,7 @@ public static async Task read_file_async(string filename) { byte[] data; - using (FileStream stream = File.Open(filename, FileMode.Open)) { + using (FileStream stream = File.Open(filename, FileMode.Open, FileAccess.Read, FileShare.Read)) { data = new byte[stream.Length]; await stream.ReadAsync(data, 0, data.Length); }