[*] Global build regressions caused by addd4080
This commit is contained in:
parent
d49d4ad4fc
commit
d0fb19f87e
@ -36,7 +36,7 @@ namespace Aurora::Async
|
|||||||
|
|
||||||
// old sewage to be cleaned up
|
// old sewage to be cleaned up
|
||||||
static bool gBOriginal;
|
static bool gBOriginal;
|
||||||
static AuWorkerPId_t gMainThread;
|
static AuOptionalEx<AuWorkerPId_t> gMainThread;
|
||||||
void StartSched2();
|
void StartSched2();
|
||||||
static void SchedNextTime(AuUInt64 uNSAbs);
|
static void SchedNextTime(AuUInt64 uNSAbs);
|
||||||
|
|
||||||
@ -171,7 +171,7 @@ namespace Aurora::Async
|
|||||||
{
|
{
|
||||||
if (!AuExchange(gLockedPump, true))
|
if (!AuExchange(gLockedPump, true))
|
||||||
{
|
{
|
||||||
NewWorkItem(gMainThread, AuMakeShared<BasicWorkStdFunc>(PumpSysThread))->Dispatch();
|
NewWorkItem(gMainThread.value(), AuMakeShared<BasicWorkStdFunc>(PumpSysThread))->Dispatch();
|
||||||
}
|
}
|
||||||
|
|
||||||
SchedNextTime(AuMSToNS<AuUInt64>(gRuntimeConfig.async.dwLegacyMainThreadSystemTickMS) + AuTime::SteadyClockNS());
|
SchedNextTime(AuMSToNS<AuUInt64>(gRuntimeConfig.async.dwLegacyMainThreadSystemTickMS) + AuTime::SteadyClockNS());
|
||||||
@ -197,12 +197,11 @@ namespace Aurora::Async
|
|||||||
|
|
||||||
AUKN_SYM void SetMainThreadForSysPumpScheduling(AuWorkerPId_t pid)
|
AUKN_SYM void SetMainThreadForSysPumpScheduling(AuWorkerPId_t pid)
|
||||||
{
|
{
|
||||||
if (!pid)
|
if (!pid.pool)
|
||||||
{
|
{
|
||||||
gRuntimeConfig.async.bEnableLegacyTicks = gBOriginal;
|
gRuntimeConfig.async.bEnableLegacyTicks = gBOriginal;
|
||||||
gMainThread = AuWorkerPId_t(AuAsync::GetSharedAsyncApp(), AuWorkerId_t {0, 0});
|
AuResetMember(gMainThread);
|
||||||
Console::Commands::UpdateDispatcher(gMainThread);
|
Console::Commands::UpdateDispatcher(gMainThread);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -480,7 +480,7 @@ namespace Aurora::Async
|
|||||||
auto pWorker = GetCurrentWorkerPId().pool;
|
auto pWorker = GetCurrentWorkerPId().pool;
|
||||||
if (!pWorker)
|
if (!pWorker)
|
||||||
{
|
{
|
||||||
pWorker = AuUnsafeRaiiToShared(gAsyncApp);
|
pWorker = AuUnsafeRaiiToShared(static_cast<IAsyncApp *>(gAsyncApp));
|
||||||
}
|
}
|
||||||
|
|
||||||
return AuMakeShared<WorkItem>(ToInternal(pWorker).get(), WorkerPId_t { pWorker , worker }, task);
|
return AuMakeShared<WorkItem>(ToInternal(pWorker).get(), WorkerPId_t { pWorker , worker }, task);
|
||||||
@ -504,7 +504,7 @@ namespace Aurora::Async
|
|||||||
|
|
||||||
if (!pWorker)
|
if (!pWorker)
|
||||||
{
|
{
|
||||||
pWorker = AuUnsafeRaiiToShared(gAsyncApp);
|
pWorker = AuUnsafeRaiiToShared(static_cast<IAsyncApp *>(gAsyncApp));
|
||||||
}
|
}
|
||||||
|
|
||||||
return AuMakeSharedThrow<FuncWorker>(ToInternal(pWorker).get(), worker, AuMove(func));
|
return AuMakeSharedThrow<FuncWorker>(ToInternal(pWorker).get(), worker, AuMove(func));
|
||||||
@ -528,7 +528,7 @@ namespace Aurora::Async
|
|||||||
|
|
||||||
if (!pWorker)
|
if (!pWorker)
|
||||||
{
|
{
|
||||||
pWorker = AuUnsafeRaiiToShared(gAsyncApp);
|
pWorker = AuUnsafeRaiiToShared(static_cast<IAsyncApp *>(gAsyncApp));
|
||||||
}
|
}
|
||||||
|
|
||||||
return AuMakeSharedThrow<WorkItem>(ToInternal(pWorker).get(), worker, task);
|
return AuMakeSharedThrow<WorkItem>(ToInternal(pWorker).get(), worker, task);
|
||||||
@ -539,7 +539,7 @@ namespace Aurora::Async
|
|||||||
auto pWorker = GetCurrentWorkerPId().pool;
|
auto pWorker = GetCurrentWorkerPId().pool;
|
||||||
if (!pWorker)
|
if (!pWorker)
|
||||||
{
|
{
|
||||||
pWorker = AuUnsafeRaiiToShared(gAsyncApp);
|
pWorker = AuUnsafeRaiiToShared(static_cast<IAsyncApp *>(gAsyncApp));
|
||||||
}
|
}
|
||||||
return AuMakeShared<WorkItem>((IThreadPoolInternal *)ToInternal(pWorker).get(), WorkerPId_t {}, AuSPtr<IWorkItemHandler>{});
|
return AuMakeShared<WorkItem>((IThreadPoolInternal *)ToInternal(pWorker).get(), WorkerPId_t {}, AuSPtr<IWorkItemHandler>{});
|
||||||
}
|
}
|
||||||
|
@ -23,9 +23,9 @@ namespace Aurora::Console::Commands
|
|||||||
static AuHashMap<AuString, Command> gCommands;
|
static AuHashMap<AuString, Command> gCommands;
|
||||||
static AuList<Hooks::LineHook_cb> gLineCallbacks;
|
static AuList<Hooks::LineHook_cb> gLineCallbacks;
|
||||||
static AuList<CommandDispatch> gPendingCommands;
|
static AuList<CommandDispatch> gPendingCommands;
|
||||||
static AuThreadPrimitives::Mutex gMutex;
|
static AuMutex gMutex;
|
||||||
static AuThreadPrimitives::Mutex gPendingCommandsMutex;
|
static AuMutex gPendingCommandsMutex;
|
||||||
static Async::WorkerPId_t gCommandDispatcher;
|
static AuOptionalEx<AuWorkerPId_t> gCommandDispatcher;
|
||||||
|
|
||||||
struct Command
|
struct Command
|
||||||
{
|
{
|
||||||
@ -44,7 +44,7 @@ namespace Aurora::Console::Commands
|
|||||||
eAsync
|
eAsync
|
||||||
};
|
};
|
||||||
|
|
||||||
static bool Dispatch(const AuString &string, EDispatchType type, Async::WorkerPId_t workerId)
|
static bool Dispatch(const AuString &string, EDispatchType type, AuOptionalEx<AuWorkerPId_t> workerId)
|
||||||
{
|
{
|
||||||
Parse::ParseResult res;
|
Parse::ParseResult res;
|
||||||
AuSPtr<ICommandSubscriber> callback;
|
AuSPtr<ICommandSubscriber> callback;
|
||||||
@ -102,9 +102,9 @@ namespace Aurora::Console::Commands
|
|||||||
{
|
{
|
||||||
callback->OnCommand(res.result);
|
callback->OnCommand(res.result);
|
||||||
}
|
}
|
||||||
else
|
else if (workerId)
|
||||||
{
|
{
|
||||||
Async::NewWorkFunction(workerId, [=]() -> void
|
Async::NewWorkFunction(workerId.value(), [=]() -> void
|
||||||
{
|
{
|
||||||
callback->OnCommand(res.result);
|
callback->OnCommand(res.result);
|
||||||
});
|
});
|
||||||
@ -146,7 +146,7 @@ namespace Aurora::Console::Commands
|
|||||||
return Dispatch(string, EDispatchType::eAsync, id);
|
return Dispatch(string, EDispatchType::eAsync, id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateDispatcher(AuOptional<Async::WorkerPId_t> target)
|
void UpdateDispatcher(AuOptionalEx<AuWorkerPId_t> target)
|
||||||
{
|
{
|
||||||
AU_LOCK_GUARD(gMutex);
|
AU_LOCK_GUARD(gMutex);
|
||||||
AU_LOCK_GUARD(gPendingCommandsMutex);
|
AU_LOCK_GUARD(gPendingCommandsMutex);
|
||||||
@ -161,7 +161,7 @@ namespace Aurora::Console::Commands
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
gCommandDispatcher = target.value();
|
gCommandDispatcher = target;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void DispatchCommandsFromThis(const AuList<CommandDispatch> &commands)
|
static void DispatchCommandsFromThis(const AuList<CommandDispatch> &commands)
|
||||||
@ -180,7 +180,7 @@ namespace Aurora::Console::Commands
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
NewWorkItem(gCommandDispatcher, AuMakeShared<Async::BasicWorkStdFunc>(func))->Dispatch()->BlockUntilComplete();
|
NewWorkItem(gCommandDispatcher.value(), AuMakeShared<Async::BasicWorkStdFunc>(func))->Dispatch()->BlockUntilComplete();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
namespace Aurora::Console::Commands
|
namespace Aurora::Console::Commands
|
||||||
{
|
{
|
||||||
void UpdateDispatcher(AuOptional<Async::WorkerPId_t> target);
|
void UpdateDispatcher(AuOptionalEx<Async::WorkerPId_t> target);
|
||||||
void PumpCommands();
|
void PumpCommands();
|
||||||
void RunCommandFunction(const AuFunction<void()> &func);
|
void RunCommandFunction(const AuFunction<void()> &func);
|
||||||
}
|
}
|
@ -75,7 +75,7 @@ namespace Aurora::IO
|
|||||||
|
|
||||||
if (asyncWorker)
|
if (asyncWorker)
|
||||||
{
|
{
|
||||||
AuAtomicAdd(&AuStaticCast<AuAsync::ThreadPool>(asyncWorker.pool)->uAtomicIOProcessors, 1u);
|
AuAtomicAdd(&AuStaticCast<AuAsync::ThreadPool>(asyncWorker.value().pool)->uAtomicIOProcessors, 1u);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@ -633,9 +633,9 @@ namespace Aurora::IO
|
|||||||
|
|
||||||
void IOProcessor::AddTimerLS()
|
void IOProcessor::AddTimerLS()
|
||||||
{
|
{
|
||||||
if (asyncWorker)
|
if (auto optWorker = this->asyncWorker)
|
||||||
{
|
{
|
||||||
AuAtomicAdd(&AuStaticCast<AuAsync::ThreadPool>(asyncWorker.pool)->uAtomicIOProcessorsWorthlessSources, 1u);
|
AuAtomicAdd(&AuStaticCast<AuAsync::ThreadPool>(optWorker.value().pool)->uAtomicIOProcessorsWorthlessSources, 1u);
|
||||||
}
|
}
|
||||||
|
|
||||||
this->ToQueue()->SourceAdd(this->timers.pLsTicker);
|
this->ToQueue()->SourceAdd(this->timers.pLsTicker);
|
||||||
@ -647,7 +647,7 @@ namespace Aurora::IO
|
|||||||
{
|
{
|
||||||
if (!this->pWorkItem)
|
if (!this->pWorkItem)
|
||||||
{
|
{
|
||||||
this->pWorkItem = this->asyncWorker.pool->NewWorkItem(this->asyncWorker, AuSharedFromThis());
|
this->pWorkItem = this->asyncWorker.value().pool->NewWorkItem(this->asyncWorker.value(), AuSharedFromThis());
|
||||||
}
|
}
|
||||||
|
|
||||||
this->pWorkItem->SetSchedTimeNs(this->refreshRateNs);
|
this->pWorkItem->SetSchedTimeNs(this->refreshRateNs);
|
||||||
@ -688,15 +688,15 @@ namespace Aurora::IO
|
|||||||
|
|
||||||
queue->SourceRemove(this->timers.pLsTicker);
|
queue->SourceRemove(this->timers.pLsTicker);
|
||||||
|
|
||||||
if (asyncWorker)
|
if (auto optWorker = this->asyncWorker)
|
||||||
{
|
{
|
||||||
AuAtomicSub(&AuStaticCast<AuAsync::ThreadPool>(asyncWorker.pool)->uAtomicIOProcessorsWorthlessSources, 1u);
|
AuAtomicSub(&AuStaticCast<AuAsync::ThreadPool>(optWorker.value().pool)->uAtomicIOProcessorsWorthlessSources, 1u);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IOProcessor::IsAsync()
|
bool IOProcessor::IsAsync()
|
||||||
{
|
{
|
||||||
return bool(this->asyncWorker.pool);
|
return bool(this->asyncWorker);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IOProcessor::IsTickOnly()
|
bool IOProcessor::IsTickOnly()
|
||||||
@ -869,9 +869,9 @@ namespace Aurora::IO
|
|||||||
|
|
||||||
void IOProcessor::ReleaseAllWatches()
|
void IOProcessor::ReleaseAllWatches()
|
||||||
{
|
{
|
||||||
if (asyncWorker)
|
if (auto optWorker = this->asyncWorker)
|
||||||
{
|
{
|
||||||
AuAtomicSub(&AuStaticCast<AuAsync::ThreadPool>(asyncWorker.pool)->uAtomicIOProcessors, 1u);
|
AuAtomicSub(&AuStaticCast<AuAsync::ThreadPool>(optWorker.value().pool)->uAtomicIOProcessors, 1u);
|
||||||
}
|
}
|
||||||
|
|
||||||
RemoveTimer();
|
RemoveTimer();
|
||||||
|
@ -107,7 +107,7 @@ namespace Aurora::IO
|
|||||||
|
|
||||||
IOProcessorItems items;
|
IOProcessorItems items;
|
||||||
IOProcessorTimers timers;
|
IOProcessorTimers timers;
|
||||||
AuAsync::WorkerPId_t asyncWorker;
|
AuOptionalEx<AuAsync::WorkerPId_t> asyncWorker;
|
||||||
AuSPtr<AuAsync::IWorkItem> pWorkItem;
|
AuSPtr<AuAsync::IWorkItem> pWorkItem;
|
||||||
|
|
||||||
AuThreadPrimitives::MutexUnique_t mutex;
|
AuThreadPrimitives::MutexUnique_t mutex;
|
||||||
|
@ -105,7 +105,7 @@ namespace Aurora::IO::Net
|
|||||||
AuSPtr<Waiter> temp;
|
AuSPtr<Waiter> temp;
|
||||||
|
|
||||||
auto pid = AuAsync::GetCurrentWorkerPId();
|
auto pid = AuAsync::GetCurrentWorkerPId();
|
||||||
if (pid)
|
if (pid.pool)
|
||||||
{
|
{
|
||||||
temp = AuMakeShared<Waiter>(work, callback, pid);
|
temp = AuMakeShared<Waiter>(work, callback, pid);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user