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
|
Queue::~Queue() noexcept
|
||||||
{
|
{
|
||||||
operations.clear_and_dispose(DeleteDisposer{});
|
operations.clear_and_dispose(DeleteDisposer{});
|
||||||
|
@ -23,6 +23,7 @@ class Queue {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
Queue(unsigned entries, unsigned flags);
|
Queue(unsigned entries, unsigned flags);
|
||||||
|
Queue(unsigned entries, struct io_uring_params ¶ms);
|
||||||
~Queue() noexcept;
|
~Queue() noexcept;
|
||||||
|
|
||||||
FileDescriptor GetFileDescriptor() const noexcept {
|
FileDescriptor GetFileDescriptor() const noexcept {
|
||||||
|
@ -14,6 +14,13 @@ Ring::Ring(unsigned entries, unsigned flags)
|
|||||||
throw MakeErrno(-error, "io_uring_queue_init() failed");
|
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
|
void
|
||||||
Ring::Submit()
|
Ring::Submit()
|
||||||
{
|
{
|
||||||
|
@ -26,6 +26,16 @@ public:
|
|||||||
*/
|
*/
|
||||||
Ring(unsigned entries, unsigned flags);
|
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 {
|
~Ring() noexcept {
|
||||||
io_uring_queue_exit(&ring);
|
io_uring_queue_exit(&ring);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user