Begin to debug ... all of this stuff :)

This commit is contained in:
Vitaliy Filippov
2019-11-16 02:32:29 +03:00
parent da2fe69879
commit eec1c35ea4
13 changed files with 89 additions and 66 deletions
+9 -9
View File
@@ -2,15 +2,15 @@
ring_loop_t::ring_loop_t(int qd)
{
int ret = io_uring_queue_init(qd, ring, 0);
int ret = io_uring_queue_init(qd, &ring, 0);
if (ret < 0)
{
throw new std::runtime_error(std::string("io_uring_queue_init: ") + strerror(-ret));
throw std::runtime_error(std::string("io_uring_queue_init: ") + strerror(-ret));
}
ring_data = (struct ring_data_t*)malloc(sizeof(ring_data_t) * ring->sq.ring_sz);
ring_data = (struct ring_data_t*)malloc(sizeof(ring_data_t) * ring.sq.ring_sz);
if (!ring_data)
{
throw new std::bad_alloc();
throw std::bad_alloc();
}
}
@@ -21,10 +21,10 @@ ring_loop_t::~ring_loop_t()
struct io_uring_sqe* ring_loop_t::get_sqe()
{
struct io_uring_sqe* sqe = io_uring_get_sqe(ring);
struct io_uring_sqe* sqe = io_uring_get_sqe(&ring);
if (sqe)
{
io_uring_sqe_set_data(sqe, ring_data + (sqe - ring->sq.sqes));
io_uring_sqe_set_data(sqe, ring_data + (sqe - ring.sq.sqes));
}
return sqe;
}
@@ -49,16 +49,16 @@ void ring_loop_t::loop(bool sleep)
struct io_uring_cqe *cqe;
if (sleep)
{
io_uring_wait_cqe(ring, &cqe);
io_uring_wait_cqe(&ring, &cqe);
}
while ((io_uring_peek_cqe(ring, &cqe), cqe))
while ((io_uring_peek_cqe(&ring, &cqe), cqe))
{
struct ring_data_t *d = (struct ring_data_t*)cqe->user_data;
if (d->callback)
{
d->callback(d);
}
io_uring_cqe_seen(ring, cqe);
io_uring_cqe_seen(&ring, cqe);
}
for (int i = 0; i < consumers.size(); i++)
{