Set of offset-based APIs for thread-safe file IO (#53669)
authorAdam Sitnik <adam.sitnik@gmail.com>
Tue, 15 Jun 2021 18:59:58 +0000 (20:59 +0200)
committerGitHub <noreply@github.com>
Tue, 15 Jun 2021 18:59:58 +0000 (20:59 +0200)
commit9d771a26f058a9fa4a49850d4778bbab7aa79a22
tree9307c0e861d2bba133da9f1e3eee1fbca1ce16df
parent4e03f3665ad197b005b361b3b7cdf7fcac298ef2
Set of offset-based APIs for thread-safe file IO (#53669)

Co-authored-by: Stephen Toub <stoub@microsoft.com>
72 files changed:
src/libraries/Common/src/Interop/Unix/System.Native/Interop.IOVector.cs [new file with mode: 0644]
src/libraries/Common/src/Interop/Unix/System.Native/Interop.MessageHeader.cs
src/libraries/Common/src/Interop/Unix/System.Native/Interop.PRead.cs [new file with mode: 0644]
src/libraries/Common/src/Interop/Unix/System.Native/Interop.PReadV.cs [new file with mode: 0644]
src/libraries/Common/src/Interop/Unix/System.Native/Interop.PWrite.cs [new file with mode: 0644]
src/libraries/Common/src/Interop/Unix/System.Native/Interop.PWriteV.cs [new file with mode: 0644]
src/libraries/Common/src/Interop/Windows/Kernel32/Interop.FileScatterGather.cs [new file with mode: 0644]
src/libraries/Common/src/Interop/Windows/NtDll/Interop.NtCreateFile.cs
src/libraries/Common/src/Interop/Windows/NtDll/Interop.NtQueryInformationFile.cs
src/libraries/Common/src/Interop/Windows/NtDll/Interop.NtStatus.cs
src/libraries/Native/Unix/Common/pal_config.h.in
src/libraries/Native/Unix/System.Native/entrypoints.c
src/libraries/Native/Unix/System.Native/pal_io.c
src/libraries/Native/Unix/System.Native/pal_io.h
src/libraries/Native/Unix/System.Native/pal_networking.c
src/libraries/Native/Unix/System.Native/pal_networking.h
src/libraries/Native/Unix/configure.cmake
src/libraries/System.IO.FileSystem/tests/File/AppendAsync.cs
src/libraries/System.IO.FileSystem/tests/File/Create.cs
src/libraries/System.IO.FileSystem/tests/File/EncryptDecrypt.cs
src/libraries/System.IO.FileSystem/tests/File/OpenHandle.cs [new file with mode: 0644]
src/libraries/System.IO.FileSystem/tests/File/ReadWriteAllBytesAsync.cs
src/libraries/System.IO.FileSystem/tests/File/ReadWriteAllLinesAsync.cs
src/libraries/System.IO.FileSystem/tests/File/ReadWriteAllTextAsync.cs
src/libraries/System.IO.FileSystem/tests/FileStream/CopyToAsync.cs
src/libraries/System.IO.FileSystem/tests/FileStream/FileStreamConformanceTests.cs
src/libraries/System.IO.FileSystem/tests/FileStream/IsAsync.cs
src/libraries/System.IO.FileSystem/tests/FileStream/ReadAsync.cs
src/libraries/System.IO.FileSystem/tests/FileStream/SafeFileHandle.cs
src/libraries/System.IO.FileSystem/tests/FileStream/WriteAsync.cs
src/libraries/System.IO.FileSystem/tests/FileStream/ctor_options_as.cs
src/libraries/System.IO.FileSystem/tests/FileStream/ctor_sfh_fa.cs
src/libraries/System.IO.FileSystem/tests/FileStream/ctor_sfh_fa_buffer.cs
src/libraries/System.IO.FileSystem/tests/FileStream/ctor_sfh_fa_buffer_async.cs
src/libraries/System.IO.FileSystem/tests/FileStream/ctor_str_fm_fa_fs_buffer_fo.cs
src/libraries/System.IO.FileSystem/tests/Net5CompatTests/System.IO.FileSystem.Net5Compat.Tests.csproj
src/libraries/System.IO.FileSystem/tests/RandomAccess/Base.cs [new file with mode: 0644]
src/libraries/System.IO.FileSystem/tests/RandomAccess/GetLength.cs [new file with mode: 0644]
src/libraries/System.IO.FileSystem/tests/RandomAccess/NoBuffering.Windows.cs [new file with mode: 0644]
src/libraries/System.IO.FileSystem/tests/RandomAccess/Read.cs [new file with mode: 0644]
src/libraries/System.IO.FileSystem/tests/RandomAccess/ReadAsync.cs [new file with mode: 0644]
src/libraries/System.IO.FileSystem/tests/RandomAccess/ReadScatter.cs [new file with mode: 0644]
src/libraries/System.IO.FileSystem/tests/RandomAccess/ReadScatterAsync.cs [new file with mode: 0644]
src/libraries/System.IO.FileSystem/tests/RandomAccess/SectorAlignedMemory.Windows.cs [new file with mode: 0644]
src/libraries/System.IO.FileSystem/tests/RandomAccess/Write.cs [new file with mode: 0644]
src/libraries/System.IO.FileSystem/tests/RandomAccess/WriteAsync.cs [new file with mode: 0644]
src/libraries/System.IO.FileSystem/tests/RandomAccess/WriteGather.cs [new file with mode: 0644]
src/libraries/System.IO.FileSystem/tests/RandomAccess/WriteGatherAsync.cs [new file with mode: 0644]
src/libraries/System.IO.FileSystem/tests/System.IO.FileSystem.Tests.csproj
src/libraries/System.Net.Sockets/src/System.Net.Sockets.csproj
src/libraries/System.Private.CoreLib/src/Microsoft/Win32/SafeHandles/SafeFileHandle.Unix.cs
src/libraries/System.Private.CoreLib/src/Microsoft/Win32/SafeHandles/SafeFileHandle.ValueTaskSource.Windows.cs [moved from src/libraries/System.Private.CoreLib/src/System/IO/Strategies/AsyncWindowsFileStreamStrategy.ValueTaskSource.cs with 77% similarity]
src/libraries/System.Private.CoreLib/src/Microsoft/Win32/SafeHandles/SafeFileHandle.Windows.cs
src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems
src/libraries/System.Private.CoreLib/src/System/IO/File.cs
src/libraries/System.Private.CoreLib/src/System/IO/File.netcoreapp.cs
src/libraries/System.Private.CoreLib/src/System/IO/FileStream.cs
src/libraries/System.Private.CoreLib/src/System/IO/RandomAccess.Unix.cs [new file with mode: 0644]
src/libraries/System.Private.CoreLib/src/System/IO/RandomAccess.Windows.cs [new file with mode: 0644]
src/libraries/System.Private.CoreLib/src/System/IO/RandomAccess.cs [new file with mode: 0644]
src/libraries/System.Private.CoreLib/src/System/IO/Strategies/AsyncWindowsFileStreamStrategy.cs
src/libraries/System.Private.CoreLib/src/System/IO/Strategies/FileStreamHelpers.Unix.cs
src/libraries/System.Private.CoreLib/src/System/IO/Strategies/FileStreamHelpers.Windows.cs
src/libraries/System.Private.CoreLib/src/System/IO/Strategies/FileStreamHelpers.cs
src/libraries/System.Private.CoreLib/src/System/IO/Strategies/Net5CompatFileStreamStrategy.Unix.cs
src/libraries/System.Private.CoreLib/src/System/IO/Strategies/Net5CompatFileStreamStrategy.Windows.cs
src/libraries/System.Private.CoreLib/src/System/IO/Strategies/Net5CompatFileStreamStrategy.cs
src/libraries/System.Private.CoreLib/src/System/IO/Strategies/SyncWindowsFileStreamStrategy.cs
src/libraries/System.Private.CoreLib/src/System/IO/Strategies/WindowsFileStreamStrategy.cs
src/libraries/System.Private.CoreLib/src/System/Runtime/InteropServices/SafeHandle.cs
src/libraries/System.Private.CoreLib/src/System/ThrowHelper.cs
src/libraries/System.Runtime/ref/System.Runtime.cs