mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-15 05:47:56 -07:00
e0ef8fc03f
Otherwise, it would work but any async sending would be delayed by 4ms or wait until the next packet was received. Also increase the client timeout to 250ms, since enet_host_service is now really interrupted.
41 lines
955 B
C++
41 lines
955 B
C++
// Copyright 2015 Dolphin Emulator Project
|
|
// Licensed under GPLv2
|
|
// Refer to the license.txt file included.
|
|
|
|
#include "ENetUtil.h"
|
|
|
|
namespace ENetUtil
|
|
{
|
|
|
|
void WakeupThread(ENetHost* host)
|
|
{
|
|
// Send ourselves a spurious message. This is hackier than it should be.
|
|
// comex reported this as https://github.com/lsalzman/enet/issues/23, so
|
|
// hopefully there will be a better way to do it in the future.
|
|
ENetAddress address;
|
|
if (host->address.port != 0)
|
|
address.port = host->address.port;
|
|
else
|
|
enet_socket_get_address(host->socket, &address);
|
|
address.host = 0x0100007f; // localhost
|
|
u8 byte = 0;
|
|
ENetBuffer buf;
|
|
buf.data = &byte;
|
|
buf.dataLength = 1;
|
|
enet_socket_send(host->socket, &address, &buf, 1);
|
|
}
|
|
|
|
int ENET_CALLBACK InterceptCallback(ENetHost* host, ENetEvent* event)
|
|
{
|
|
// wakeup packet received
|
|
if (host->receivedDataLength == 1 && host->receivedData[0] == 0)
|
|
{
|
|
event->type = (ENetEventType) 42;
|
|
return 1;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
|
|
}
|