/*** Copyright (C) 2022 J Reece Wilson (a/k/a "Reece"). All rights reserved. File: IOProcessorItems.hpp Date: 2022-6-6 Author: Reece ***/ #pragma once namespace Aurora::IO { struct IOProcessor; struct IOProcessorItem; struct IOProcessorItems { AuList> allItems; AuList> onTickReceivers; AuList> onOtherReceivers; AuList> registeredIO; AuThreadPrimitives::CriticalSectionUnique_t mutex; AuList> workSignaled; AuThreadPrimitives::CriticalSectionUnique_t mutex2; AuList> workSignaled2; AuList> finalizeQueue; AuList, bool>> crossThreadAbort; bool Init(); bool AddFrameTemp(const AuSPtr &item); bool AddFrameOrFallback(const AuSPtr &item); bool ScheduleFinish(const AuSPtr &item, bool unsafe); AuList> GetBlockedSignals(); }; }