Commit Graph

80 Commits

Author SHA1 Message Date
195af26aa4 [*] C++20 coroutine support: recursive callstack 2024-05-01 20:09:35 +01:00
13ddd42961 [*] Limit kThreadIdAny dequeues until one until we can preempt the work queues of threads within our local group 2024-04-10 07:44:06 +01:00
0784d9101c [*] Harden AuAsync shutdown 2024-02-01 21:35:42 +00:00
2b69c07b67 [*] IncrementAbortFenceOnWorker should support kThreadIdAny 2024-01-26 03:04:23 +00:00
cb751d0286 [*] Fix regressions in work groups 2024-01-23 22:59:13 +00:00
cdc6eeeabd [*] Two trivial bug fixes 2023-12-24 22:03:14 +00:00
8944d8bd16 [+] IAsyncTimer
[+] IAsyncTimerCallback
[+] ETickType.hpp
[+] EWorkPriority.hpp
[+] static IThreadPool::GetSelfIOProcessor()
[+] static IThreadPool::GetSelfIONetInterface()
[+] static IThreadPool::GetSelfIONetWorker()
[-] [Source/Async/]AsyncRunnable.hpp
[*] Begin encapsulating WorkerPId_t
[*] WorkerPId_t no longer take strong pointers to prevent leaks given that these identifiers are copied and kept alive everywhere
2023-12-07 09:20:23 +00:00
a189151c59 [+] AuAsync::IThreadPool::GetIOProcessor
[+] AuAsync::IThreadPool::GetIONetInterface
[+] AuAsync::IThreadPool::GetIONetWorker
[+] AuAsync::IWorkItem::SetSchedByLoopSource
2023-12-01 09:22:51 +00:00
3225d8cbda [*] Fix shutdown regression (e037fc21, a7dfd899 151bb106, cleanup cont) 2023-11-12 00:21:50 +00:00
151bb106fb [*] Lock access to wpWorkers (e037fc21, a7dfd899 cleanup cont) and remove a redundant write lock to solve a deadlock 2023-11-11 12:48:02 +00:00
a7dfd899f8 [*] e037fc21 cleanup cont 2023-11-11 11:30:38 +00:00
e037fc214a [*] Begin cleaning up AuAsync (2/?)
6af9940b, ???
2023-11-11 10:11:09 +00:00
8624499ab8 [*] async: none of these async io mixing modes ever worked properly. simplify/remove 2023-11-06 04:14:43 +00:00
dcb27645a1 [*] bug: drop limitation in io processor
[*] attempting to mitigate freeze on remote start watch
2023-11-05 21:20:16 +00:00
deaa18ab07 [*] Bug fixes 2023-10-25 23:49:43 +01:00
ceb67798f1 [+] IThreadPool::IncrementAbortFenceOnPool
[+] IThreadPool::IncrementAbortFenceOnWorker
[+] IThreadPool::QueryAbortFence
[+] IThreadPool::QueryShouldAbort
2023-10-24 15:33:30 +01:00
f62771b6e7 [*] Build regression after ROXTL AuMin/Max update to use the common type as opposed to a stupid reference of a forced common T in the usual case of taking one of two integer values
(thats to say, the edge case of needing copy-less operator-overloaded numeric-like classes aren't used anywhere. The c++ definition of min/max is stupid; we dont ever need a reference to min/max variable)
2023-10-17 04:58:30 +01:00
a60e740328 [*] caught async deinit deadlock
featues conflicting with idec what. this mess needs rewriting
2023-10-01 17:10:48 +01:00
f6437ef66e [-] Engine 0.0/1.0 async 2023-09-22 06:07:03 +01:00
213ed6c49b [*] yes 2023-09-05 22:31:16 +01:00
3adb019cf1 [*] d3587dbf cont 2023-09-05 15:03:59 +01:00
d3587dbf08 [*] 560ca079 cont perf improvement 2023-09-05 14:17:49 +01:00
560ca079a4 [*] AuAsync performance improvement: avoiding the kernel 2023-09-05 02:36:46 +01:00
55c02d4aa0 [*] Tweak default thread config
[*] Fix regressions
2023-08-28 11:48:13 +01:00
209d1939aa [*] Tweak default thread config 2023-08-27 21:27:49 +01:00
92ebafecab [*] Suppress a number of antisemitic clang warnings 2023-08-18 23:32:46 +01:00
b6ff6b1623 [*] Ensure child thread pools can shutdown their parent 2023-08-17 11:46:25 +01:00
f265ca267a [+] IThreadPool::AddDependency 2023-08-13 09:30:17 +01:00
0f12603390 [+] AuAsync::NewWorkFunction
[+] AuAsync::IThreadPool::NewWorkFunction
[+] AU_DEBUG_MEMCRUNCH
2023-08-10 03:36:19 +01:00
a0c82788d9 [*] AuAsync optimization: remove some rwlock guards 2023-08-10 01:31:10 +01:00
7dda7ae358 [*] AuAsync shutdown is still a mess 2023-08-10 01:20:34 +01:00
e68dc02e7e [+] Secret AuAsync::KeepThreadPoolAlive api (for now) 2023-08-09 10:30:24 +01:00
dd13098022 [*] Transition to dynamic tick-based scheduling
[*] Re-do AuAsync reference counting
[+] IWorkItem::SetSchedSteadyTimeNsAbs
[*] Irrelevant IIOProcessor sources are now discarded in evaluating whether or not a thread-pool in special running mode should shutdown
[*] Transition WorkItems to only use steady time
[*] Refactor AsyncConfig
[*] Drop default SMT spin time from hundreds of cycles to ~32 so that we can sit nicely at the bottom of task manager unless the application calls for extra responsivity
2023-08-09 03:21:14 +01:00
8bf351e007 [*] NT Win8+ fix: improper condvar wake up
[*] Fix kThreadIdAny regression
2023-07-11 00:54:54 +01:00
09295e57f8 [*] TODO: sort out async run modes 2023-06-26 08:11:45 +01:00
a56538a4cd [*] women 2023-06-07 21:10:29 +01:00
9f52ca0f1a [*] A patch to fix some of the regressions introduced in the first step in overhauling AuAsync
i beat my wife with cardboard spoons. jolly fun.
2023-06-07 20:35:31 +01:00
53df1ee81d [*] Work on AuConditionVariable.NT some more
[*] Fix high cpu regression in 6af9940b
2023-05-30 12:53:26 +01:00
fb1b016c87 [*] fix what was meant to be a warning before a crash. now return false 2023-05-25 02:53:10 +01:00
6af9940bd4 [*] Rewrite a bit of AuAsync
(maybe 1/3 of a rewrite)
2023-05-25 01:55:55 +01:00
0b265c80cf [*] ::run across threads should block until shutdown
[*] kanker that needs to be rewritten
2023-05-24 08:19:47 +01:00
64af4d0fa8 [+] AuAsync::IThreadPool::PollAndCount
[+] AuAsync::IThreadPool::RunAllPending
2023-03-05 12:55:07 +00:00
d2ad4cd10d [*] Solve another deadlock race condition under SysShutdown 2023-02-17 04:44:17 +00:00
c4fae31057 [*] Another shutdown "fix" 2023-02-16 01:01:21 +00:00
1cd2d82093 [*] Fix shutdown races under V8 + JS + Gtk branch 2023-02-16 00:45:10 +00:00
fa9f190635 [+] Missing Win32 exit handler. I was dumb enough to rely on the debug exception
[*] ...no this wont do for now
2023-02-09 00:42:56 +00:00
8293484a86 [*] Reworked AuAsync ThreadPool shutdown (again)
[*] Fixed nested lock under WorkItem
2023-02-08 18:23:37 +00:00
8b6c93fba9 [*] Fix: ThreadPool::ResolveHandle throws null 2023-02-06 04:07:54 +00:00
f43251c8fc [+] AuNet::ISocketChannelEventListener
[+] AuFS::UpdateTimes
[+] AuFS::UpdateFileTimes
[+] AuFS::CompressEx
[*] AuFS::Compress now rejects files that look to be already compressed
[+] AuFS::DecompressEx
[+] AuFS::Create
[+] AuFS::WriteNewFile
[+] AuFS::WriteNewString
[+] AuFs::FileAttrsList
[+] AuFs::FileAttrsGet
[+] AuFs::FileAttrsSet
[+] DirectoryLogger::uMaxLogsOrZeroBeforeCompress
[+] ISocketChannel.AddEventListener
[+] ISocketChannel.AddEventListener
[+] DirectoryLogger.uMaxLogsOrZeroBeforeCompress
[*] Fix UNIX regression
[*] Fix up stream socket channel realloc IPC
[*] Fix shutdown regression in pretty much everything thanks to 8ff81df1's dumbass fix
    (fixes fence regression on shutdown)
[*] Fix DirDeleterEx formatting of reported failed paths
[*] Fix up file not truncated if already exists bugs. Extended and alternative apis added.
[*] Fix ICompressionStream::ReadEx returning the wrong read value
[+] Legacy compression API can now self-correct once newer stream processor objects are added
2023-02-04 19:43:01 +00:00
8ff81df129 [*] Fix deadlock involving WaitFor under ThreadPool (shutdown race)
[*] Optimize mutex lock out of RWLockImpl::TryLockWrite
[*] Force all relevant members of RWLockImpl to be volatile just bc lol (afaik we cant justify it yet; however, i want to minimalize the risk of future issues in this type)
2023-01-30 14:35:48 +00:00