The waiter sets a flag right before the wait; the test waits for it,
then requires the wait not to have returned before it finishes, aborts
or deletes the request.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Adds sceNpLookupAbortRequest, sceNpLookupCreateAsyncRequest,
sceNpLookupPollAsync, sceNpLookupWaitAsync, sceNpLookupSetTimeout,
sceNpWordFilterSetTimeout and sceNpWordFilterWaitAsync on the offline
request model. Waits block on a condition variable that request
completion, abort and deletion signal.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
perror wrote through the host stderr stream that a failed freopen closed and
threw out of the export. It now returns without output and leaves errno as it
was, as printf and puts fail a closed stream instead of throwing.
MoltenVK runs the tessellation evaluation stage as a post-tessellation
vertex function that reads the control stage's per-vertex outputs from a
raw buffer, and pads the evaluation input struct to every output of the
control shader it is linked with. The shader library cache of a
VkPipelineCache matches a cached conversion when the new pipeline has the
inputs that conversion used, so an evaluation shader converted next to a
hull with one 16-byte output is reused next to the merged hull, whose LDS
record adds a second per-vertex output. The domain stage then reads the
merged hull's control points at a 16-byte stride over a 48-byte buffer and
the patch lands elsewhere. Created without the pipeline cache, each
tessellation pipeline converts its stages for its own interface.
Two live threads and the caller each call ctime on a time localtime rejects and must receive three distinct buffers. The case fails on current main because they share one static buffer.
ctime returns a thread-local buffer for every time it formats, but the text for a time localtime cannot represent was written to a function-local static shared by all threads. Two threads calling ctime on such a time raced on it: ThreadSanitizer reports a data race at Time.cpp:608, and the returned pointers were the same. The fallback buffer is now thread-local like the others.
After the formatted report, the guest standard output is closed and the report is requested again; it must return without throwing. The case fails on current main with the closed-stream exception.
The heap error report threw FileStream: closed stream out of the export when the guest had closed its standard output, so a heap-error diagnostic aborted through the exception instead of reporting. The standard output part is now skipped when the stream is closed; the host diagnostic on the host stderr is still written.
sceHttpGetRegisteredCtxIds writes the libnet memory pool id and the SSL
context id the context was created with, in the order of its recovered
prototype. With no live context it returns BEFORE_INIT and for an
unknown or terminated id INVALID_ID, as sceHttpGetMemoryPoolStats does;
a null output throws.
InitStart returns SIGNED_OUT, as sceNpBandwidthTestInitStartDownload and
InitStartUpload do, so no test is ever started, and
ShutdownWithDetailedInfo returns INVALID_ARGUMENT and writes nothing, as
sceNpBandwidthTestShutdown does. Neither reads an argument.
GuestTlsGetAddr.cpp finds the host's TLS module through dl_iterate_phdr
from <link.h>, which macOS lacks, so the test does not compile there, and
__tls_get_addr itself throws on macOS until a library defines the guest
TLS runtime the macOS relinker binds to, as the libkernel debt entry for
__tls_get_addr records. The test is now registered only on Linux and
Windows.
Remove the system-mode throw cases in GuestVrTracker2.cpp that tested
modes 1000 and 1001 throwing. Allocate a fresh temporary directory
atomically in EnterApplicationRoot without clobbering existing paths.
Update the debt entry without citing a source.
Assisted-by: Antigravity:gemini-3.8-flash-medium
The ten IpcInt getters and callback forms forward to sceNetCtlGetState,
GetStateV6, GetResult, GetResultV6, GetInfo, GetInfoV6 and the IPv4 and
IPv6 callback registration, whose recovered argument registers they
share. The three ForLib calls keep a fourth table of eight callbacks with
the register, unregister and dispatch the NpToolkit forms use. Both are
recorded as unmeasured in the debt file.
Clang folds the constant built by Extended into a normal long double, so
guest_math_exact never fed a pseudo-denormal to __fpclassifyl on macOS.
Keeping the helper out of line makes the value cross the call at run time.
Co-Authored-By: Claude Opus 5.5 <[email protected]>