Commit Graph

1061 Commits

Author SHA1 Message Date
48dc2e790b [+] IEvent::TrySet()
[+] New atomic logic for AuEvent. With this change, I can stop slandering it as the "shit primitive."
(it's still not the best it could be, but it's an improvement over what i had before)
2023-09-10 14:04:00 +01:00
12a2f30f47 [*] 9ab0c25b but for UNIX 2023-09-09 23:57:01 +01:00
9ab0c25b05 [*] Win32 opener: ensure file/dir exists (subject to time of check attack, but its fine to prevent stupid 'open' shellexec exploits. wont save you if io write is available) 2023-09-09 23:15:45 +01:00
1a4a4ad863 [*] Added missing this->s 2023-09-09 19:46:08 +01:00
dfe44317a0 [*] SMT Yield: minor branch added to SMT Yield 2023-09-09 18:09:22 +01:00
88355932c1 [*] Optimize thread configurations to be unpacked from the bitmap once at startup and during reconfigure as opposed ad-hoc 2023-09-09 17:37:14 +01:00
ca2f8fea71 [*] Mitigate Kernel32 and Rtl mixing 2023-09-09 15:29:48 +01:00
1fa063e19f [*] Why am i calling libm/crt from here? how stupid am i 2023-09-09 15:16:06 +01:00
4ad70cadb4 [*] optimization: cea33621 cont 2023-09-09 14:38:02 +01:00
e7ec875851 [*] added more win32 steady time clock, frequency-based fast paths 2023-09-09 13:58:14 +01:00
cf7be329d6 [*] Update fallback RNG entropy: reduce expected tick resolution 2023-09-09 13:50:26 +01:00
cea3362186 [*] Finally fixed an old regression: RWLock is back to being write-biased to prevent forever-read conditions 2023-09-09 13:03:02 +01:00
109b0cff3f [*] ...and same applies to RWLock
(instead its pls dont use the public api instead of the internal NT apis)
2023-09-09 12:39:47 +01:00
9601fcfd39 [*] NT AuThreadPrimitives: stop using these AuProcAddresses directly 2023-09-09 12:29:43 +01:00
8e59300395 [*] Another broken Linux path 2023-09-09 12:17:40 +01:00
51dcd190b3 [*] Missing SysPushErrorXXXs 2023-09-07 23:20:26 +01:00
36a72228db [*] Cleanup/formatting of SMT yields 2023-09-06 17:01:01 +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
876f4439b3 [*] NT proceesses: no point in pretending _spawnv is a real thing. this path is just causing defects. 2023-09-04 23:46:48 +01:00
f53508baa9 [*] Unify both SMT subloops 2023-09-04 23:03:08 +01:00
d112179c83 [*] May as well make this in line with the others 2023-09-04 16:45:42 +01:00
bcf3fabd83 [*] FS Resources (GetWritableAppdata): fail over to this path instead of failing 2023-09-04 16:32:28 +01:00
1c80e4910b [*] RWLock: another optimization for embedded and win7 targets 2023-09-03 13:35:12 +01:00
1479bcaa22 [*] bonk 2023-09-02 21:24:37 +01:00
5b9e780fa0 [*] Fix some obvious recent regressions in NT loop queue 2023-09-02 19:36:12 +01:00
c2a6bd92fa [*] Minor optimization in a shit primitive 2023-09-02 19:09:04 +01:00
0838373410 [*] NT Optimization: more aggressive semaphores to prevent atomic failures (perhaps this could be made to account for weak exchanges under different archs) 2023-09-02 19:05:07 +01:00
73a52552f7 [*] [to revert?] Attempt to mitigate message spam wakeups on older systems
Also forces higher latency on Windows 7
2023-09-02 17:56:15 +01:00
cc6e0358fa [*] NT: further optimizations to solve CPU usage regressions 2023-09-02 16:11:06 +01:00
9fbdafea74 [*] x86_64 Use RDSC for more deterministic back-off durations
Well, sort of. It's more likely to be referenced against the exact frequency stated in the hard-coded CPUID vendor string.
2023-09-02 14:37:07 +01:00
85102ec7ce [*] Minor NT LoopQueue fixes/improvements 2023-09-02 04:56:41 +01:00
de25694416 [*] bonk (use AuAXXX atomics) 2023-09-02 04:55:43 +01:00
a20e9b4954 [*] Win10/Linux regression in RWLock (again) 2023-08-31 18:41:18 +01:00
dd655ad3e0 [*] Linux unaligned signal fix 2023-08-31 18:41:10 +01:00
affe4cc496 [*] RWLock: simplify writersPending_ guard
[*] Fix RWLock: I may have messed up the new fast path timeouts in RWLock
[*] RWLock: refactoring/improvements
2023-08-30 16:11:54 +01:00
cf118d0b4b [*] Minor RW lock tweaks 2023-08-30 14:57:13 +01:00
af8737e9d2 [*] 32bit builds can run on 64bit systems 2023-08-30 12:36:59 +01:00
627cdd069f [+] AuOptional<AuUInt> Aurora::HWInfo::GetSwapSize()
[+] AuOptional<AuUInt> Aurora::HWInfo::GetPhysicalSize()
utils
2023-08-30 01:37:49 +01:00
46850c9122 [*] Shutup clangbang 2023-08-30 01:28:05 +01:00
47cec914cb [*] Refactor FIOConfig::ddefaultBrand -> (AuOptional) FIOConfig::optDefaultBrand
[+] FIOConfig::bIsIntranetTrusted
2023-08-29 21:10:53 +01:00
b5a452a43d [+] AuFS::IsFileBlocked
[+] AuFS::IsFileTrusted
2023-08-29 20:30:09 +01:00
0fcd63d3a8 [+] Missing Win8 check. Literally who? 2023-08-29 16:51:55 +01:00
9fcc62fb92 [*] Always check adapter info length 2023-08-29 16:31:39 +01:00
47cccd0490 [+] Absolute Win32 version checks
[+] bool AuSwInfo::IsWindowsXP()
[+] bool AuSwInfo::IsWindowsXPSP1()
[+] bool AuSwInfo::IsWindowsXPSP2()
[+] bool AuSwInfo::IsWindowsXPSP3()
[+] bool AuSwInfo::IsWindowsXPAny()
[+] bool AuSwInfo::IsWindowsVista()
[+] bool AuSwInfo::IsWindowsVistaSP1()
[+] bool AuSwInfo::IsWindowsVistaSP2()
[+] bool AuSwInfo::IsWindowsVistaAny()
[+] bool AuSwInfo::IsWindows7()
[+] bool AuSwInfo::IsWindows7SP1()
[+] bool AuSwInfo::IsWindows7Any()
[+] bool AuSwInfo::IsWindows8()
[+] bool AuSwInfo::IsWindows8Point1()
[+] bool AuSwInfo::IsWindows8Any()
[+] bool AuSwInfo::IsWindows10()
[+] bool AuSwInfo::IsWindows11()
2023-08-29 16:12:13 +01:00
3503d0ec68 [+] Added Linux signal configuration and separate LinuxConfig type (LinuxConfig)
[*] Fix Linux regressions in previous NT commit
2023-08-29 03:11:28 +01:00
ac0981ac1b [+] bool IsHandleFile(AuUInt uHandle)
[+] bool IsHandleTTY(AuUInt uHandle)
[+] bool IsHandlePipe(AuUInt uHandle)
...as opposed to forced IOHandle usage
[+] AuIOHandle
[+] AuSharedIOHandle
2023-08-29 01:37:25 +01:00
be32e2777f [*] 3; chosen by dice roll. mimalloc heap seed regression: 115ee1a9ec 2023-08-29 01:07:59 +01:00
fef6eac859 [*] More Linux tweaks 2023-08-28 19:13:18 +01:00
0d759f85f8 [*] Linux/Clang fixerinos/improvements 2023-08-28 16:35:32 +01:00
55c02d4aa0 [*] Tweak default thread config
[*] Fix regressions
2023-08-28 11:48:13 +01:00
b2e1df8f72 [*] Annoying Linux checks 2023-08-27 21:35:40 +01:00
209d1939aa [*] Tweak default thread config 2023-08-27 21:27:49 +01:00
97296d1fe9 [*] ThreadingConfig::bPreferEnableAdaptiveSpin 2023-08-27 20:26:36 +01:00
8fe2619673 [*] Rework SMT yielding 2023-08-27 19:56:22 +01:00
6a3b278ea0 [*] Amend 4674f45d 2023-08-27 19:42:21 +01:00
b8458990c9 [*] Amend a41a2719 2023-08-27 18:25:04 +01:00
4674f45dd3 [*] Support for further Win32 API degradation / historical OSes / emulators 2023-08-27 17:43:29 +01:00
5cf7533eab [*] Linux and UNIX QOL 2023-08-27 12:42:10 +01:00
9bd05a0752 [+] HashStream SOO
[+] HashSteam extension padding for future use
2023-08-26 21:32:49 +01:00
a41a27198e [*] zoom 2023-08-26 21:11:27 +01:00
3e5aa1aff0 [*] Simplified lines of code: shared pointer init 2023-08-26 19:02:14 +01:00
7680a86d5a [*] ...same applies to these 2023-08-26 18:46:00 +01:00
610f2c73a0 [*] Optimize >4 thread wakeups on <= Win7, under Semaphore 2023-08-26 18:08:33 +01:00
4b1e3fd1e5 [*] 346a9f3bde still isnt good enough. why the fuck must all (not projecting), all, linux code even from the kernel maintainers have fucked syscall checks? 2023-08-26 16:50:20 +01:00
346a9f3bde [*] More aggressively wake up reorder prone (unlikely) condvars under broadcast (unlikely) 2023-08-26 15:56:59 +01:00
3ca8de022e [*] Fix issues related to inconstent retardation in the asinine freetard world
GNU and its consequences have been a disaster for the human race
2023-08-26 15:04:48 +01:00
4a73f7250f [*] Another uniproc test 2023-08-25 12:42:31 +01:00
337df8040c [*] Move uniprocessor check 2023-08-24 15:12:49 +01:00
100964ac87 [*] NT Semaphore optimization 2023-08-24 13:55:31 +01:00
935d1b6ab2 [*] RWLock: added another SignalManyWriter condition to ensure upgrades never get missed 2023-08-24 11:45:15 +01:00
1ecd46ddbf [*] Ad-hoc system thread signals 2023-08-24 10:43:33 +01:00
937f123dad [*] RWLock: Futex waiter path: force read semantics 2023-08-24 10:20:43 +01:00
49ced3fcc6 [*] Always attach to the main thread context on init 2023-08-24 10:17:53 +01:00
31319981ba [*] Two trivial Linux tweaks 2023-08-23 23:45:26 +01:00
fae93a71b0 [*] Attempt to guess UNIX (Linux) CPU topology when missing file systems 2023-08-23 23:32:30 +01:00
3898a41198 [*] Adopt new ROXTL atomics
...AuAtomicLoad + AuAtomicClearU8Lock
2023-08-23 22:03:00 +01:00
293a8ddd66 [*] Simplify when to call _beginthreadex (we probably shouldn't) 2023-08-23 19:11:21 +01:00
61eaa701b7 [*] MSVC compilation regression
(theres no way in fuck vista or xp will run with >= 32 threads. hell, you can barely expect the acpi and boot video drivers to work.)
2023-08-23 19:05:32 +01:00
10e95fb5ae [*] Begin reworking Linux/POSIX PRIOs 2023-08-23 18:17:15 +01:00
9c04b31da3 [*] Don't warn on XP/Vista 2023-08-23 17:09:19 +01:00
921fee1b8d [+] IAuroraThread::SetNoUnwindTerminateExitWatchDogTimeoutInMS 2023-08-23 17:01:56 +01:00
412630077d [+] ThreadingConfig::bPreferWaitOnAddressAlwaysSpin 2023-08-23 16:45:08 +01:00
524365b5da [*] Handhold non-MSVC compilers 2023-08-23 16:38:22 +01:00
0c5d140bd4 [*] Autoset bPlatformIsSMPProcessorOptimized to false on singlethreaded systems 2023-08-23 16:03:22 +01:00
d79cb4f3ca [*] RWLock: WakeOnAddress optimization on wait to prevent mutex congestion on modern OSes 2023-08-23 15:37:55 +01:00
30fc75cbab [*] Clang 15 build regression: AuList<T> before T definition 2023-08-22 20:17:57 +01:00
a4d317a48d [*] Reoptimize semaphore wait paths 2023-08-22 15:28:09 +01:00
7ad725ca04 [+] Global adaptive spin 2023-08-22 13:01:06 +01:00
ccfd0fafab [*] Why must all languages be garbage at expressing life-span of constness?
This is const-correct, as in, we don't expect to modify the pointer; you dont need to be a writer
This was const-correct, as in, this field better be a volatile block of memory you expect to update - plz dont to any retarded assumptions based on it being "const," compiler.
2023-08-22 11:08:56 +01:00
3747fb7c6f [+] ThreadingConfig::uUWPNanosecondEmulationMaxYields
[+] ThreadingConfig::bUWPNanosecondEmulationCheckFirst
2023-08-22 09:56:32 +01:00
cf363b9f5b [*] Ensure this never throws 2023-08-22 09:45:32 +01:00
76ac770674 [*] Update a handful of condvar cas's and account for laziness along the way 2023-08-22 09:44:54 +01:00
cd362db7af [*] Deaf, dumb, and blind 2023-08-21 19:20:52 +01:00
fa170c413d [*] More compact Linux primitives 2023-08-21 19:17:05 +01:00
e8f445c463 [*] Linux build regression / AuProcesses API change 2023-08-21 17:48:48 +01:00
5cc811be19 [*] More compact Win32 primitives! 2023-08-21 17:34:24 +01:00
869512e651 [*] Optimization: Remove two stupid branches in RWLock 2023-08-21 16:33:32 +01:00