Commit Graph

44 Commits

Author SHA1 Message Date
Max Kellermann fb5d77158a util/IntrusiveList: add enum LinkMode
Compile-time code simplification.
2022-11-13 08:15:47 +01:00
Max Kellermann bbc82a9892 io/FileDescriptor, net/SocketDescriptor: make lots of methods "const"
Only the file descriptor value itself is const, but the file itself
may be readable/writable.
2022-11-09 19:19:20 +01:00
Max Kellermann 69596106d3 io/FileDescriptor: add pread() wrapper 2022-11-09 19:18:41 +01:00
Max Kellermann 0c98d93e9a io/FileOutputStream: write to temporary file if O_TMPFILE is not available 2022-07-14 18:45:33 +02:00
Max Kellermann 150e8f78bf io/FileOutputStream: use fsync() if fdatasync() is unavailable
Fixes the macOS build which apparently doesn't implement the POSIX
function fdatasync().
2022-07-14 18:34:44 +02:00
Max Kellermann cc0def15c4 Copyright year 2022 2022-07-14 17:59:35 +02:00
Max Kellermann 2670bbdcc8 io/FileOutputStream: simplify OpenTempFile() call 2022-07-14 15:47:10 +02:00
Max Kellermann bd3e096411 io/FileOutputStream: move code to Delete() 2022-07-14 15:43:36 +02:00
Max Kellermann 270a74e53b io/FileOutputStream: add method Sync() 2022-07-14 15:41:12 +02:00
Max Kellermann 47d103e8a1 io/FileOutputStream: add API documentation 2022-07-14 15:41:03 +02:00
Max Kellermann cddeb2a0df io/BufferedOutputStream: add missing #include 2022-07-13 14:11:36 +02:00
Max Kellermann 9a30286289 io/BufferedOutputStream: add libfmt support 2022-07-13 12:52:20 +02:00
Max Kellermann 0f4bf5569a event/InotifyEvent: new class wrapping inotify
Replaces class InotifySource.
2022-06-30 12:05:50 +02:00
Max Kellermann 60a3aae35f io/FileDescriptor: add OpenReadOnly() overload with directory fd 2022-06-30 10:30:54 +02:00
Max Kellermann bc3415ce8b Copyright year 2022 2022-06-30 09:41:53 +02:00
Max Kellermann 899eaa3307 io/FileDescriptor: add Duplicate() returning UniqueFileDescriptor 2022-06-29 17:31:37 +02:00
Max Kellermann bb7be9a4cd util/*FifoBuffer: migrate from WritableBuffer to std::span 2022-05-19 14:01:57 +02:00
Max Kellermann 570755f05a io/BufferedReader: migrate from WritableBuffer to std::span 2022-05-19 13:25:19 +02:00
Max Kellermann 7d67c87a47 io/FileReader: use std::size_t 2021-12-08 19:40:22 +01:00
Philipp Wollschlegel c072902f23 io/FileOutputStream: merge win32 function Cancel
Win32 had a separate implementation for FileOutputStream::CANCEL Logic
was added to the other platform function, but forgotten in this one.

This merges the functions into one, as only the call for file deletion
is platform specific.
2021-12-08 19:35:11 +01:00
Max Kellermann 80c177e9a0 io/BufferedOutputStream: add missing char* cast 2021-12-07 12:07:13 +01:00
Max Kellermann 4074db5f50 io/BufferedReader: use std::size_t 2021-12-07 11:54:11 +01:00
Max Kellermann 8c6bc02bf7 io/BufferedOutputStream: use std::byte 2021-12-07 11:47:45 +01:00
Max Kellermann a5fa43b526 fs/io: move to io/ 2021-12-03 14:35:41 +01:00
Max Kellermann 799032505e io/uring/Queue: add method RequireSubmitEntry()
Fixes assertion failure when the submit queue is empty.
2021-12-03 13:58:39 +01:00
Max Kellermann c8f174ac92 io/uring/Operation: disallow copying 2021-12-03 13:52:04 +01:00
Max Kellermann 25354b9d8c Merge branch 'v0.22.x' 2021-03-10 21:06:12 +01:00
Max Kellermann d61341c0e3 io/FileDescriptor: add method SetBinaryMode() 2021-03-08 17:25:36 +01:00
Max Kellermann 6cdb3ff21e use [[gnu::pure]] instead of gcc_pure
This is semi-standard and doesn't require the util/Compiler.h header.
2021-02-12 18:34:16 +01:00
Max Kellermann 08e76815ba io/FileDescriptor: use std::byte 2021-01-22 12:50:16 +01:00
Max Kellermann b8df851414 io/FileDescriptor: use std::size_t 2020-12-02 14:56:00 +01:00
Max Kellermann a584141cae io/Open: add flags parameter to OpenReadOnly() 2020-12-02 14:52:51 +01:00
Max Kellermann d547ace749 io/FileDescriptor: use std::size_t 2020-11-30 22:27:16 +01:00
arcnmx ad585e179f system/FileDescriptor: fix Duplicate result
dup2 returns new_fd on success, not 0
2020-10-20 09:32:43 -07:00
Max Kellermann 3ac87bbcda io/uring/Queue: use IntrusiveList<> 2020-10-18 19:37:54 +02:00
Max Kellermann 1c079e554b io/UniqueFileDescriptor: add method Release() 2020-10-14 20:50:02 +02:00
Rosen Penev c883f178b8 clang-tidy: use auto
Found with modernize-use-auto

Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-09-26 21:33:35 -07:00
Max Kellermann 85bab67083 input/uring: safe cancellation
My concept with `class CancellableOperation` doesn't work properly,
because the kernel may continue to write to the given buffer as soon
as the read finishes.

To fix this, this commit adds `class ReadOperation` which owns the
buffer and the `struct iovec`.  Instances of this class persist until
the read really finishes, even if the operation is canceled.
2020-09-23 11:07:26 +02:00
Max Kellermann 4001379663 io/uring/Operation: add method ReplaceUring() 2020-09-22 21:50:48 +02:00
Max Kellermann 382273abc5 io/uring/Operation: add API documentation 2020-09-22 21:49:48 +02:00
Max Kellermann 291be84704 Merge branch 'v0.21.x' into master 2020-09-07 20:18:40 +02:00
Max Kellermann 155fc8fa5a include cleanup 2020-07-23 16:26:18 +02:00
Max Kellermann 62d0ceabcc io/uring: basic Linux io_uring support 2020-05-05 17:10:17 +02:00
Max Kellermann 9815d10137 system/FileDescriptor: move to io/ 2020-05-05 14:27:03 +02:00