Skip to content

Commit 77f822f

Browse files
committed
Tag the 2 lower bits, formatting
1 parent de7ef58 commit 77f822f

File tree

2 files changed

+10
-11
lines changed

2 files changed

+10
-11
lines changed

src/engine_uring.cpp

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,10 @@ struct connection_t;
8989
struct engine_t;
9090
struct automata_t;
9191

92+
static constexpr std::size_t uring_acpt_tag_k{0};
9293
static constexpr std::size_t uring_recv_tag_k{1};
9394
static constexpr std::size_t uring_send_tag_k{2};
9495
static constexpr std::size_t uring_stat_tag_k{3};
95-
static constexpr std::size_t uring_acpt_tag_k{4};
9696

9797
enum class stage_t {
9898
waiting_to_accept_k = 0,
@@ -764,8 +764,8 @@ template <std::size_t max_count_ak> std::size_t engine_t::pop_completed(complete
764764
if (!uring_cqe->user_data)
765765
continue;
766766

767-
events[completed].connection_ptr = (connection_t*)(uring_cqe->user_data & 0x0fffffffffffffff);
768-
events[completed].type = (uring_cqe->user_data >> 60) & 0xF;// & 0xf000000000000000;
767+
events[completed].connection_ptr = (connection_t*)(uring_cqe->user_data & ~0x3);
768+
events[completed].type = uring_cqe->user_data & 0x3;
769769
events[completed].stage = events[completed].connection_ptr->stage;
770770
events[completed].result = uring_cqe->res;
771771
++completed;
@@ -800,7 +800,7 @@ bool engine_t::consider_accepting_new_connection() noexcept {
800800
uring_sqe = io_uring_get_sqe(&uring);
801801
io_uring_prep_accept_direct(uring_sqe, socket, &connection.client_address, &connection.client_address_len, 0,
802802
IORING_FILE_INDEX_ALLOC);
803-
io_uring_sqe_set_data(uring_sqe, (void*)((uring_acpt_tag_k<<60) | uint64_t(&connection)));
803+
io_uring_sqe_set_data(uring_sqe, (void*)(uring_acpt_tag_k | uint64_t(&connection)));
804804

805805
// Accepting new connections can be time-less.
806806
// io_uring_sqe_set_flags(uring_sqe, IOSQE_IO_LINK);
@@ -830,7 +830,7 @@ void engine_t::submit_stats_heartbeat() noexcept {
830830

831831
uring_sqe = io_uring_get_sqe(&uring);
832832
io_uring_prep_timeout(uring_sqe, &connection.next_wakeup, 0, 0);
833-
io_uring_sqe_set_data(uring_sqe, (void*)((uring_stat_tag_k<<60) | uint64_t(&connection)));
833+
io_uring_sqe_set_data(uring_sqe, (void*)(uring_stat_tag_k | uint64_t(&connection)));
834834
uring_result = io_uring_submit(&uring);
835835
submission_mutex.unlock();
836836
}
@@ -902,7 +902,7 @@ void automata_t::send_next() noexcept {
902902
uring_sqe->flags |= IOSQE_FIXED_FILE;
903903
uring_sqe->buf_index = engine.connections.offset_of(connection) * 2u + 1u;
904904
}
905-
io_uring_sqe_set_data(uring_sqe, (void*)((uring_send_tag_k<<60) | uint64_t(&connection)));
905+
io_uring_sqe_set_data(uring_sqe, (void*)(uring_send_tag_k | uint64_t(&connection)));
906906
io_uring_sqe_set_flags(uring_sqe, 0);
907907
uring_result = io_uring_submit(&engine.uring);
908908
engine.submission_mutex.unlock();
@@ -928,7 +928,7 @@ void automata_t::receive_next() noexcept {
928928
uring_sqe = io_uring_get_sqe(&engine.uring);
929929
io_uring_prep_read_fixed(uring_sqe, int(connection.descriptor), (void*)pipes.next_input_address(),
930930
pipes.next_input_length(), 0, engine.connections.offset_of(connection) * 2u);
931-
io_uring_sqe_set_data(uring_sqe, (void*)((uring_recv_tag_k<<60) | uint64_t(&connection)));
931+
io_uring_sqe_set_data(uring_sqe, (void*)(uring_recv_tag_k | uint64_t(&connection)));
932932
io_uring_sqe_set_flags(uring_sqe, IOSQE_IO_LINK);
933933

934934
// More than other operations this depends on the information coming from the client.
@@ -947,13 +947,13 @@ void automata_t::receive_next() noexcept {
947947
void automata_t::operator()() noexcept {
948948

949949
if (is_corrupted())
950-
if ( connection.stage != stage_t::waiting_to_close_k )
950+
if (connection.stage != stage_t::waiting_to_close_k)
951951
return close_gracefully();
952952

953953
switch (connection.stage) {
954954

955955
case stage_t::waiting_to_accept_k:
956-
if ( type != uring_acpt_tag_k ) {
956+
if (type != uring_acpt_tag_k) {
957957
return;
958958
}
959959

@@ -973,7 +973,7 @@ void automata_t::operator()() noexcept {
973973

974974
case stage_t::expecting_reception_k:
975975

976-
if ( type != uring_recv_tag_k ) {
976+
if (type != uring_recv_tag_k) {
977977
return;
978978
}
979979
// From documentation:

src/helpers/parse.hpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ inline std::variant<named_callback_t, default_error_t> find_callback(named_callb
6767
if (!doc.is_object())
6868
return default_error_t{-32600, "The JSON sent is not a valid request object."};
6969

70-
7170
// We don't support JSON-RPC before version 2.0.
7271
sj::simdjson_result<sjd::element> version = doc["jsonrpc"];
7372
if (!version.is_string() || version.get_string().value_unsafe() != "2.0")

0 commit comments

Comments
 (0)