io/uring/Ring: add ctor wrapping io_uring_queue_init_params()
This commit is contained in:
parent
badf7101e2
commit
c644b7616a
@ -15,6 +15,11 @@ Queue::Queue(unsigned entries, unsigned flags)
|
||||
{
|
||||
}
|
||||
|
||||
Queue::Queue(unsigned entries, struct io_uring_params ¶ms)
|
||||
:ring(entries, params)
|
||||
{
|
||||
}
|
||||
|
||||
Queue::~Queue() noexcept
|
||||
{
|
||||
operations.clear_and_dispose(DeleteDisposer{});
|
||||
|
@ -23,6 +23,7 @@ class Queue {
|
||||
|
||||
public:
|
||||
Queue(unsigned entries, unsigned flags);
|
||||
Queue(unsigned entries, struct io_uring_params ¶ms);
|
||||
~Queue() noexcept;
|
||||
|
||||
FileDescriptor GetFileDescriptor() const noexcept {
|
||||
|
@ -14,6 +14,13 @@ Ring::Ring(unsigned entries, unsigned flags)
|
||||
throw MakeErrno(-error, "io_uring_queue_init() failed");
|
||||
}
|
||||
|
||||
Ring::Ring(unsigned entries, struct io_uring_params ¶ms)
|
||||
{
|
||||
if (int error = io_uring_queue_init_params(entries, &ring, ¶ms);
|
||||
error < 0)
|
||||
throw MakeErrno(-error, "io_uring_queue_init_params() failed");
|
||||
}
|
||||
|
||||
void
|
||||
Ring::Submit()
|
||||
{
|
||||
|
@ -26,6 +26,16 @@ public:
|
||||
*/
|
||||
Ring(unsigned entries, unsigned flags);
|
||||
|
||||
/**
|
||||
* Construct the io_uring using io_uring_queue_init().
|
||||
*
|
||||
* Throws on error.
|
||||
*
|
||||
* @param params initialization parameters; will also be
|
||||
* written to by this constructor
|
||||
*/
|
||||
Ring(unsigned entries, struct io_uring_params ¶ms);
|
||||
|
||||
~Ring() noexcept {
|
||||
io_uring_queue_exit(&ring);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user