mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-16 16:00:30 +02:00
Socket waits now block in select() on the socket plus a wake or cancel socket (Common/Net/Cancel), so a stop or cancel ends them at once. - HTTP: cancel flags become net::CancelToken; Connect waits once on all addresses, receives wait instead of spinning, no DNS retry sleep. - Adhoc: the friend finder and adhoc server block on their sockets with a wake socket and a deadline; matching runs on a CoreTiming tick instead of two threads (savestate section bumped). - sceNetInet select/poll check without blocking and park the HLE thread, re-checked from a CoreTiming event until ready or the emulated timeout. - Vendor the aemu_postoffice client (was a submodule) with no sleeps: waits on the socket, close via shutdown and an eventcount, cancelable connects, and lock-free session slot claims. - PortManager waits without a timeout; PSP_InitWait replaces the headless boot poll. - TimeUtil: sleep_us/sleep_ms only outside the core; sleep_precise, sleep_random, yield and the Windows timer period are gone. - Unit test for the socket waits.
28 lines
513 B
C++
28 lines
513 B
C++
#include "Common/Log.h"
|
|
|
|
#include <stdio.h>
|
|
#include <stdarg.h>
|
|
|
|
static int log_impl(const char *format, ...){
|
|
va_list args;
|
|
char log_buf[2048] = {0};
|
|
|
|
va_start(args, format);
|
|
int len = vsnprintf(log_buf, sizeof(log_buf), format, args);
|
|
va_end(args);
|
|
|
|
if (len > 0){
|
|
// chew off the ending '\n' which is a standard in this project, but not in PPSSPP
|
|
log_buf[len - 1] = '\0';
|
|
ERROR_LOG(Log::sceNet, "%s", log_buf);
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
extern "C" {
|
|
|
|
int (*log_func)(const char *format, ...) = log_impl;
|
|
|
|
}
|