*: perf improvements
This commit is contained in:
parent
949e46642a
commit
e774913db9
@ -171,7 +171,7 @@ public:
|
|||||||
* @param flags Optional flags that modify the behavior of `getnameinfo`.
|
* @param flags Optional flags that modify the behavior of `getnameinfo`.
|
||||||
* @return Underlying return value.
|
* @return Underlying return value.
|
||||||
*/
|
*/
|
||||||
int name_info(socket_address addr, int flags = 0);
|
int name_info(const socket_address &addr, int flags = 0);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Sync [getnameinfo](http://linux.die.net/man/3/getnameinfo).
|
* @brief Sync [getnameinfo](http://linux.die.net/man/3/getnameinfo).
|
||||||
@ -214,7 +214,7 @@ public:
|
|||||||
* * A `const char *` containing a valid hostname.
|
* * A `const char *` containing a valid hostname.
|
||||||
* * A `const char *` containing a valid service name.
|
* * A `const char *` containing a valid service name.
|
||||||
*/
|
*/
|
||||||
std::pair<bool, std::pair<const char *, const char *>> name_info_sync(socket_address addr, int flags = 0);
|
std::pair<bool, std::pair<const char *, const char *>> name_info_sync(const socket_address &addr, int flags = 0);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace uvw
|
} // namespace uvw
|
||||||
|
|||||||
@ -68,8 +68,8 @@ UVW_INLINE int get_name_info_req::name_info(const std::string &ip, unsigned int
|
|||||||
return name_info(details::ip_addr(ip.data(), port), flags);
|
return name_info(details::ip_addr(ip.data(), port), flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
UVW_INLINE int get_name_info_req::name_info(socket_address addr, int flags) {
|
UVW_INLINE int get_name_info_req::name_info(const socket_address &addr, int flags) {
|
||||||
return name_info(std::move(addr.ip), addr.port, flags);
|
return name_info(addr.ip, addr.port, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
UVW_INLINE std::pair<bool, std::pair<const char *, const char *>> get_name_info_req::name_info_sync(const sockaddr &addr, int flags) {
|
UVW_INLINE std::pair<bool, std::pair<const char *, const char *>> get_name_info_req::name_info_sync(const sockaddr &addr, int flags) {
|
||||||
@ -82,7 +82,7 @@ UVW_INLINE std::pair<bool, std::pair<const char *, const char *>> get_name_info_
|
|||||||
return name_info_sync(details::ip_addr(ip.data(), port), flags);
|
return name_info_sync(details::ip_addr(ip.data(), port), flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
UVW_INLINE std::pair<bool, std::pair<const char *, const char *>> get_name_info_req::name_info_sync(socket_address addr, int flags) {
|
UVW_INLINE std::pair<bool, std::pair<const char *, const char *>> get_name_info_req::name_info_sync(const socket_address &addr, int flags) {
|
||||||
return name_info_sync(addr.ip, addr.port, flags);
|
return name_info_sync(addr.ip, addr.port, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,10 +1,9 @@
|
|||||||
#include <utility>
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
namespace uvw {
|
namespace uvw {
|
||||||
|
|
||||||
UVW_INLINE fs_event_event::fs_event_event(const char *pathname, details::uvw_fs_event events)
|
UVW_INLINE fs_event_event::fs_event_event(const char *pathname, details::uvw_fs_event events)
|
||||||
: filename{pathname}, flags{std::move(events)} {}
|
: filename{pathname}, flags{events} {}
|
||||||
|
|
||||||
// NOLINTNEXTLINE(bugprone-easily-swappable-parameters)
|
// NOLINTNEXTLINE(bugprone-easily-swappable-parameters)
|
||||||
UVW_INLINE void fs_event_handle::start_callback(uv_fs_event_t *hndl, const char *filename, int events, int status) {
|
UVW_INLINE void fs_event_handle::start_callback(uv_fs_event_t *hndl, const char *filename, int events, int status) {
|
||||||
|
|||||||
@ -1,10 +1,9 @@
|
|||||||
#include <utility>
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
namespace uvw {
|
namespace uvw {
|
||||||
|
|
||||||
UVW_INLINE fs_poll_event::fs_poll_event(file_info previous, file_info current) noexcept
|
UVW_INLINE fs_poll_event::fs_poll_event(file_info previous, file_info current) noexcept
|
||||||
: prev{std::move(previous)}, curr{std::move(current)} {}
|
: prev{previous}, curr{current} {}
|
||||||
|
|
||||||
UVW_INLINE void fs_poll_handle::start_callback(uv_fs_poll_t *hndl, int status, const uv_stat_t *prev, const uv_stat_t *curr) {
|
UVW_INLINE void fs_poll_handle::start_callback(uv_fs_poll_t *hndl, int status, const uv_stat_t *prev, const uv_stat_t *curr) {
|
||||||
if(fs_poll_handle &fsPoll = *(static_cast<fs_poll_handle *>(hndl->data)); status) {
|
if(fs_poll_handle &fsPoll = *(static_cast<fs_poll_handle *>(hndl->data)); status) {
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
namespace uvw {
|
namespace uvw {
|
||||||
|
|
||||||
UVW_INLINE poll_event::poll_event(details::uvw_poll_event events) noexcept
|
UVW_INLINE poll_event::poll_event(details::uvw_poll_event events) noexcept
|
||||||
: flags{std::move(events)} {}
|
: flags{events} {}
|
||||||
|
|
||||||
UVW_INLINE poll_handle::poll_handle(loop::token token, std::shared_ptr<loop> ref, int desc)
|
UVW_INLINE poll_handle::poll_handle(loop::token token, std::shared_ptr<loop> ref, int desc)
|
||||||
: handle{token, std::move(ref)}, tag{FD}, file_desc{desc} {}
|
: handle{token, std::move(ref)}, tag{FD}, file_desc{desc} {}
|
||||||
|
|||||||
@ -181,7 +181,7 @@ public:
|
|||||||
uv_stdio_container_t container;
|
uv_stdio_container_t container;
|
||||||
container.flags = static_cast<uv_stdio_flags>(flags);
|
container.flags = static_cast<uv_stdio_flags>(flags);
|
||||||
container.data.stream = reinterpret_cast<uv_stream_t *>(stream.raw());
|
container.data.stream = reinterpret_cast<uv_stream_t *>(stream.raw());
|
||||||
po_stream_stdio.push_back(std::move(container));
|
po_stream_stdio.push_back(container);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -85,7 +85,7 @@ UVW_INLINE process_handle &process_handle::stdio(file_handle fd, stdio_flags fla
|
|||||||
uv_stdio_container_t container;
|
uv_stdio_container_t container;
|
||||||
container.flags = fgs;
|
container.flags = fgs;
|
||||||
container.data.fd = actual;
|
container.data.fd = actual;
|
||||||
po_fd_stdio.push_back(std::move(container));
|
po_fd_stdio.push_back(container);
|
||||||
} else {
|
} else {
|
||||||
it->flags = fgs;
|
it->flags = fgs;
|
||||||
it->data.fd = actual;
|
it->data.fd = actual;
|
||||||
|
|||||||
@ -150,7 +150,7 @@ public:
|
|||||||
* @param opts Optional additional flags.
|
* @param opts Optional additional flags.
|
||||||
* @return Underlying return value.
|
* @return Underlying return value.
|
||||||
*/
|
*/
|
||||||
int bind(socket_address addr, tcp_flags opts = tcp_flags::UVW_ENUM);
|
int bind(const socket_address &addr, tcp_flags opts = tcp_flags::UVW_ENUM);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Gets the current address to which the handle is bound.
|
* @brief Gets the current address to which the handle is bound.
|
||||||
@ -199,7 +199,7 @@ public:
|
|||||||
* @param addr A valid instance of socket_address.
|
* @param addr A valid instance of socket_address.
|
||||||
* @return Underlying return value.
|
* @return Underlying return value.
|
||||||
*/
|
*/
|
||||||
int connect(socket_address addr);
|
int connect(const socket_address &addr);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Resets a TCP connection by sending a RST packet.
|
* @brief Resets a TCP connection by sending a RST packet.
|
||||||
|
|||||||
@ -37,7 +37,7 @@ UVW_INLINE int tcp_handle::bind(const std::string &ip, unsigned int port, tcp_fl
|
|||||||
return bind(details::ip_addr(ip.data(), port), opts);
|
return bind(details::ip_addr(ip.data(), port), opts);
|
||||||
}
|
}
|
||||||
|
|
||||||
UVW_INLINE int tcp_handle::bind(socket_address addr, tcp_flags opts) {
|
UVW_INLINE int tcp_handle::bind(const socket_address &addr, tcp_flags opts) {
|
||||||
return bind(addr.ip, addr.port, opts);
|
return bind(addr.ip, addr.port, opts);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ UVW_INLINE int tcp_handle::connect(const std::string &ip, unsigned int port) {
|
|||||||
return connect(details::ip_addr(ip.data(), port));
|
return connect(details::ip_addr(ip.data(), port));
|
||||||
}
|
}
|
||||||
|
|
||||||
UVW_INLINE int tcp_handle::connect(socket_address addr) {
|
UVW_INLINE int tcp_handle::connect(const socket_address &addr) {
|
||||||
return connect(addr.ip, addr.port);
|
return connect(addr.ip, addr.port);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -154,7 +154,7 @@ public:
|
|||||||
* @param addr A valid instance of socket_address.
|
* @param addr A valid instance of socket_address.
|
||||||
* @return Underlying return value.
|
* @return Underlying return value.
|
||||||
*/
|
*/
|
||||||
int connect(socket_address addr);
|
int connect(const socket_address &addr);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Disconnects the handle.
|
* @brief Disconnects the handle.
|
||||||
@ -240,7 +240,7 @@ public:
|
|||||||
* @param opts Optional additional flags.
|
* @param opts Optional additional flags.
|
||||||
* @return Underlying return value.
|
* @return Underlying return value.
|
||||||
*/
|
*/
|
||||||
int bind(socket_address addr, udp_flags opts = udp_flags::UVW_ENUM);
|
int bind(const socket_address &addr, udp_flags opts = udp_flags::UVW_ENUM);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Get the local IP and port of the UDP handle.
|
* @brief Get the local IP and port of the UDP handle.
|
||||||
@ -358,7 +358,7 @@ public:
|
|||||||
* @param len The lenght of the submitted data.
|
* @param len The lenght of the submitted data.
|
||||||
* @return Underlying return value.
|
* @return Underlying return value.
|
||||||
*/
|
*/
|
||||||
int send(socket_address addr, std::unique_ptr<char[]> data, unsigned int len);
|
int send(const socket_address &addr, std::unique_ptr<char[]> data, unsigned int len);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Sends data over the UDP socket.
|
* @brief Sends data over the UDP socket.
|
||||||
@ -416,7 +416,7 @@ public:
|
|||||||
* @param len The lenght of the submitted data.
|
* @param len The lenght of the submitted data.
|
||||||
* @return Underlying return value.
|
* @return Underlying return value.
|
||||||
*/
|
*/
|
||||||
int send(socket_address addr, char *data, unsigned int len);
|
int send(const socket_address &addr, char *data, unsigned int len);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Sends data over the UDP socket.
|
* @brief Sends data over the UDP socket.
|
||||||
@ -456,7 +456,7 @@ public:
|
|||||||
* @param len The lenght of the submitted data.
|
* @param len The lenght of the submitted data.
|
||||||
* @return Underlying return value.
|
* @return Underlying return value.
|
||||||
*/
|
*/
|
||||||
int try_send(socket_address addr, std::unique_ptr<char[]> data, unsigned int len);
|
int try_send(const socket_address &addr, std::unique_ptr<char[]> data, unsigned int len);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Sends data over the UDP socket.
|
* @brief Sends data over the UDP socket.
|
||||||
@ -496,7 +496,7 @@ public:
|
|||||||
* @param len The lenght of the submitted data.
|
* @param len The lenght of the submitted data.
|
||||||
* @return Underlying return value.
|
* @return Underlying return value.
|
||||||
*/
|
*/
|
||||||
int try_send(socket_address addr, char *data, unsigned int len);
|
int try_send(const socket_address &addr, char *data, unsigned int len);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Prepares for receiving data.
|
* @brief Prepares for receiving data.
|
||||||
|
|||||||
@ -67,7 +67,7 @@ UVW_INLINE int udp_handle::connect(const std::string &ip, unsigned int port) {
|
|||||||
return connect(details::ip_addr(ip.data(), port));
|
return connect(details::ip_addr(ip.data(), port));
|
||||||
}
|
}
|
||||||
|
|
||||||
UVW_INLINE int udp_handle::connect(socket_address addr) {
|
UVW_INLINE int udp_handle::connect(const socket_address &addr) {
|
||||||
return connect(addr.ip, addr.port);
|
return connect(addr.ip, addr.port);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -90,7 +90,7 @@ UVW_INLINE int udp_handle::bind(const std::string &ip, unsigned int port, udp_fl
|
|||||||
return bind(details::ip_addr(ip.data(), port), opts);
|
return bind(details::ip_addr(ip.data(), port), opts);
|
||||||
}
|
}
|
||||||
|
|
||||||
UVW_INLINE int udp_handle::bind(socket_address addr, udp_flags opts) {
|
UVW_INLINE int udp_handle::bind(const socket_address &addr, udp_flags opts) {
|
||||||
return bind(addr.ip, addr.port, opts);
|
return bind(addr.ip, addr.port, opts);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -142,7 +142,7 @@ UVW_INLINE int udp_handle::send(const std::string &ip, unsigned int port, std::u
|
|||||||
return send(details::ip_addr(ip.data(), port), std::move(data), len);
|
return send(details::ip_addr(ip.data(), port), std::move(data), len);
|
||||||
}
|
}
|
||||||
|
|
||||||
UVW_INLINE int udp_handle::send(socket_address addr, std::unique_ptr<char[]> data, unsigned int len) {
|
UVW_INLINE int udp_handle::send(const socket_address &addr, std::unique_ptr<char[]> data, unsigned int len) {
|
||||||
return send(addr.ip, addr.port, std::move(data), len);
|
return send(addr.ip, addr.port, std::move(data), len);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -163,7 +163,7 @@ UVW_INLINE int udp_handle::send(const std::string &ip, unsigned int port, char *
|
|||||||
return send(details::ip_addr(ip.data(), port), data, len);
|
return send(details::ip_addr(ip.data(), port), data, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
UVW_INLINE int udp_handle::send(socket_address addr, char *data, unsigned int len) {
|
UVW_INLINE int udp_handle::send(const socket_address &addr, char *data, unsigned int len) {
|
||||||
return send(addr.ip, addr.port, data, len);
|
return send(addr.ip, addr.port, data, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -176,7 +176,7 @@ UVW_INLINE int udp_handle::try_send(const std::string &ip, unsigned int port, st
|
|||||||
return try_send(details::ip_addr(ip.data(), port), std::move(data), len);
|
return try_send(details::ip_addr(ip.data(), port), std::move(data), len);
|
||||||
}
|
}
|
||||||
|
|
||||||
UVW_INLINE int udp_handle::try_send(socket_address addr, std::unique_ptr<char[]> data, unsigned int len) {
|
UVW_INLINE int udp_handle::try_send(const socket_address &addr, std::unique_ptr<char[]> data, unsigned int len) {
|
||||||
return try_send(addr.ip, addr.port, std::move(data), len);
|
return try_send(addr.ip, addr.port, std::move(data), len);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -189,7 +189,7 @@ UVW_INLINE int udp_handle::try_send(const std::string &ip, unsigned int port, ch
|
|||||||
return try_send(details::ip_addr(ip.data(), port), data, len);
|
return try_send(details::ip_addr(ip.data(), port), data, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
UVW_INLINE int udp_handle::try_send(socket_address addr, char *data, unsigned int len) {
|
UVW_INLINE int udp_handle::try_send(const socket_address &addr, char *data, unsigned int len) {
|
||||||
return try_send(addr.ip, addr.port, data, len);
|
return try_send(addr.ip, addr.port, data, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
namespace uvw {
|
namespace uvw {
|
||||||
|
|
||||||
UVW_INLINE work_req::work_req(loop::token token, std::shared_ptr<loop> ref, task t)
|
UVW_INLINE work_req::work_req(loop::token token, std::shared_ptr<loop> ref, task t)
|
||||||
: request{token, std::move(ref)}, func{t} {}
|
: request{token, std::move(ref)}, func{std::move(t)} {}
|
||||||
|
|
||||||
UVW_INLINE void work_req::work_callback(uv_work_t *req) {
|
UVW_INLINE void work_req::work_callback(uv_work_t *req) {
|
||||||
static_cast<work_req *>(req->data)->func();
|
static_cast<work_req *>(req->data)->func();
|
||||||
|
|||||||
@ -4,7 +4,7 @@
|
|||||||
TEST(Thread, Run) {
|
TEST(Thread, Run) {
|
||||||
auto loop = uvw::loop::get_default();
|
auto loop = uvw::loop::get_default();
|
||||||
auto has_run = std::make_shared<bool>();
|
auto has_run = std::make_shared<bool>();
|
||||||
auto cb = [](std::shared_ptr<void> data) {
|
auto cb = [](const std::shared_ptr<void> &data) {
|
||||||
if(auto has_run_ptr = std::static_pointer_cast<bool>(data); has_run_ptr) {
|
if(auto has_run_ptr = std::static_pointer_cast<bool>(data); has_run_ptr) {
|
||||||
*has_run_ptr = true;
|
*has_run_ptr = true;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user