Пример #1
0
internal void
SDLAddEntry(platform_work_queue *Queue, platform_work_queue_callback *Callback, void *Data) {
    int NewNextEntryToWrite = (Queue->NextEntryToWrite.value + 1 ) % ArrayCount(Queue->Entries);
    Assert(NewNextEntryToWrite != Queue->NextEntryToRead.value);
    platform_work_queue_entry *Entry = Queue->Entries + Queue->NextEntryToWrite.value;
    Entry->Callback = Callback;
    Entry->Data = Data;
    ++Queue->CompletionGoal;

    SDL_CompilerBarrier();

    Queue->NextEntryToWrite.value = NewNextEntryToWrite;
    SDL_SemPost(Queue->Sem);
}
Пример #2
0
LUMIX_ENGINE_API void memoryBarrier()
{
	SDL_CompilerBarrier();
}