sdlGetAsyncIoResult function

bool sdlGetAsyncIoResult(
  1. Pointer<SdlAsyncIoQueue> queue,
  2. Pointer<SdlAsyncIoOutcome> outcome
)

Query an async I/O task queue for completed tasks.

If a task assigned to this queue has finished, this will return true and fill in outcome with the details of the task. If no task in the queue has finished, this function will return false. This function does not block.

If a task has completed, this function will free its resources and the task pointer will no longer be valid. The task will be removed from the queue.

It is safe for multiple threads to call this function on the same queue at once; a completed task will only go to one of the threads.

\param queue the async I/O task queue to query. \param outcome details of a finished task will be written here. May not be NULL. \returns true if task has completed, false otherwise.

\threadsafety It is safe to call this function from any thread.

\since This function is available since SDL 3.2.0.

\sa SDL_WaitAsyncIOResult

extern SDL_DECLSPEC bool SDLCALL SDL_GetAsyncIOResult(SDL_AsyncIOQueue *queue, SDL_AsyncIOOutcome *outcome)

Implementation

bool sdlGetAsyncIoResult(
    Pointer<SdlAsyncIoQueue> queue, Pointer<SdlAsyncIoOutcome> outcome) {
  final sdlGetAsyncIoResultLookupFunction = libSdl3.lookupFunction<
      Uint8 Function(
          Pointer<SdlAsyncIoQueue> queue, Pointer<SdlAsyncIoOutcome> outcome),
      int Function(Pointer<SdlAsyncIoQueue> queue,
          Pointer<SdlAsyncIoOutcome> outcome)>('SDL_GetAsyncIOResult');
  return sdlGetAsyncIoResultLookupFunction(queue, outcome) == 1;
}