mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2026-09-01 02:51:41 +00:00
nuke extra threads, extra error support; use span instead of vector for poll fds
This commit is contained in:
@@ -285,7 +285,9 @@ Errno TranslateNativeError(int e, CallType call_type = CallType::Other) {
|
||||
NETWORK_ERROR_ELEM(NOTSUP) \
|
||||
NETWORK_ERROR_ELEM(ADDRINUSE) \
|
||||
NETWORK_ERROR_ELEM(ADDRNOTAVAIL) \
|
||||
NETWORK_ERROR_ELEM(NOTSOCK)
|
||||
NETWORK_ERROR_ELEM(NOTSOCK) \
|
||||
NETWORK_ERROR_ELEM(ALREADY) \
|
||||
NETWORK_ERROR_ELEM(STALE)
|
||||
#define NETWORK_ERROR_ELEM(name) case E##name: return Errno::name;
|
||||
NETWORK_ERROR_LIST
|
||||
#undef NETWORK_ERROR_ELEM
|
||||
@@ -889,7 +891,6 @@ std::variant<std::vector<AddrInfo>, GetAddrInfoError> GetAddressInfo(const std::
|
||||
|
||||
std::pair<s32, Errno> Poll(std::span<HostPollFD> pollfds, s32 timeout) {
|
||||
LOG_DEBUG(Network, "pollfds={},timeout={}", pollfds.size(), timeout);
|
||||
const size_t num = pollfds.size();
|
||||
|
||||
std::vector<WSAPOLLFD> host_pollfds(pollfds.size());
|
||||
std::transform(pollfds.begin(), pollfds.end(), host_pollfds.begin(), [](auto const e) {
|
||||
@@ -914,16 +915,14 @@ std::pair<s32, Errno> Poll(std::span<HostPollFD> pollfds, s32 timeout) {
|
||||
return {0, Errno::SUCCESS};
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < num; ++i)
|
||||
for (size_t i = 0; i < pollfds.size(); ++i)
|
||||
pollfds[i].revents = TranslatePollRevents(host_pollfds[i].revents);
|
||||
|
||||
if (result > 0) {
|
||||
return {result, Errno::SUCCESS};
|
||||
if (result <= 0) {
|
||||
ASSERT(result == SOCKET_ERROR);
|
||||
return {-1, GetAndLogLastError()};
|
||||
}
|
||||
|
||||
ASSERT(result == SOCKET_ERROR);
|
||||
|
||||
return {-1, GetAndLogLastError()};
|
||||
return {result, Errno::SUCCESS};
|
||||
}
|
||||
|
||||
Socket::~Socket() {
|
||||
|
||||
@@ -43,7 +43,9 @@ enum class Errno : u32 {
|
||||
TIMEDOUT = 110,
|
||||
CONNREFUSED = 111,
|
||||
HOSTUNREACH = 113,
|
||||
ALREADY = 114,
|
||||
INPROGRESS = 115,
|
||||
STALE = 116,
|
||||
/* made up error? */
|
||||
OTHER = 196,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user