Files
ppsspp/ext/aemu_postoffice_client/log_impl_ppsspp.cpp
T
libretroadmin 5f0f72bfda Remove sleeps and timed polling from networking
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.
2026-10-08 17:58:46 +02:00

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;
}