diff options
author | Sergei Golubchik <serg@mariadb.org> | 2022-02-10 21:16:50 +0100 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2022-02-10 21:16:50 +0100 |
commit | 65f602310c4ea086488bfaa50f36952162541a8c (patch) | |
tree | 9ed2baad54f1b0d05b0e30f0eae67f08eaceb8a0 /tpool | |
parent | 9bd7e526e7b82a2dc554e942d41072f47dd471fa (diff) | |
parent | e3894f5d397722dd50fb91dbbdbad3aaf017a4b0 (diff) | |
download | mariadb-git-65f602310c4ea086488bfaa50f36952162541a8c.tar.gz |
Merge branch '10.6' into 10.7mariadb-10.7.3
Diffstat (limited to 'tpool')
-rw-r--r-- | tpool/aio_simulated.cc | 9 | ||||
-rw-r--r-- | tpool/tpool.h | 4 |
2 files changed, 8 insertions, 5 deletions
diff --git a/tpool/aio_simulated.cc b/tpool/aio_simulated.cc index 93b2ae134b2..6b6fe71c8ab 100644 --- a/tpool/aio_simulated.cc +++ b/tpool/aio_simulated.cc @@ -72,7 +72,7 @@ struct WinIoInit static WinIoInit win_io_init; -int pread(const native_file_handle &h, void *buf, size_t count, +SSIZE_T pread(const native_file_handle &h, void *buf, size_t count, unsigned long long offset) { OVERLAPPED ov{}; @@ -81,6 +81,8 @@ int pread(const native_file_handle &h, void *buf, size_t count, ov.Offset= uli.LowPart; ov.OffsetHigh= uli.HighPart; ov.hEvent= win_get_syncio_event(); + if (count > 0xFFFFFFFF) + count= 0xFFFFFFFF; if (ReadFile(h, buf, (DWORD) count, 0, &ov) || (GetLastError() == ERROR_IO_PENDING)) @@ -93,7 +95,7 @@ int pread(const native_file_handle &h, void *buf, size_t count, return -1; } -int pwrite(const native_file_handle &h, void *buf, size_t count, +SSIZE_T pwrite(const native_file_handle &h, void *buf, size_t count, unsigned long long offset) { OVERLAPPED ov{}; @@ -102,7 +104,8 @@ int pwrite(const native_file_handle &h, void *buf, size_t count, ov.Offset= uli.LowPart; ov.OffsetHigh= uli.HighPart; ov.hEvent= win_get_syncio_event(); - + if (count > 0xFFFFFFFF) + count= 0xFFFFFFFF; if (WriteFile(h, buf, (DWORD) count, 0, &ov) || (GetLastError() == ERROR_IO_PENDING)) { diff --git a/tpool/tpool.h b/tpool/tpool.h index 8d14d637914..f857dddd57a 100644 --- a/tpool/tpool.h +++ b/tpool/tpool.h @@ -245,9 +245,9 @@ create_thread_pool_win(int min_threads= DEFAULT_MIN_POOL_THREADS, opened with FILE_FLAG_OVERLAPPED, and bound to completion port. */ -int pwrite(const native_file_handle &h, void *buf, size_t count, +SSIZE_T pwrite(const native_file_handle &h, void *buf, size_t count, unsigned long long offset); -int pread(const native_file_handle &h, void *buf, size_t count, +SSIZE_T pread(const native_file_handle &h, void *buf, size_t count, unsigned long long offset); HANDLE win_get_syncio_event(); #endif |