Commit Graph

78 Commits

Author SHA1 Message Date
Jeroen van Rijn
073e043b02 Fix hang, courtesy of cloin. 2025-10-13 02:59:57 +02:00
Lucas Perlind
15b4b9277a spin in recursive mutex lock; use compare exchange for broadcast 2025-09-24 15:54:58 +10:00
Lucas Perlind
eca2758d8b Revert "Reimplement RwMutex on non-windows systems"
This reverts commit e9d20a9b4a.
2025-09-24 12:40:01 +10:00
gingerBill
e9d20a9b4a Reimplement RwMutex on non-windows systems 2025-09-23 11:38:32 +01:00
gingerBill
a36a8722dc Minimize more thread contention 2025-09-10 19:30:32 +01:00
gingerBill
1e0902677f Multithread min dep set by removing the set itself 2025-09-10 17:29:11 +01:00
Dave Voutila
0059507374 Fix futex(8) usage on OpenBSD. 2025-03-11 10:28:48 -04:00
Laytan
28c643d23f riscv compiler support 2024-09-01 21:42:47 +02:00
Laytan Laats
b7b3ada3b1 UL_COMPARE_AND_WAIT_SHARED is macOS 10.15+ 2024-08-18 19:31:52 +02:00
Laytan Laats
03426175ae add workaround for kernel panics on MacOS 2024-07-15 22:45:16 +02:00
gingerBill
a8f84c87ae Add the permanent and temporary arenas directly on the Thread 2024-07-15 01:05:29 +01:00
gingerBill
d1450e3d88 Fix styling issues 2024-07-14 14:44:22 +01:00
Colin Davidson
64feb7599e move to isize 2024-07-14 00:33:40 -07:00
Colin Davidson
cdede4928c move to a growing queue 2024-07-13 23:16:22 -07:00
Andreas T Jonsson
58f07698e8 Added arm64 support for NetBSD 2024-06-05 10:18:47 +02:00
Andreas T Jonsson
b72c2edabb Merge branch 'master' into netbsd 2024-05-10 09:04:52 +02:00
Feoramund
1165d65c94 Minimally support compiling Odin on FreeBSD arm64
This is enough to get Odin itself compiling and the demo running.
2024-05-05 07:26:45 -04:00
Andreas T Jonsson
3000508c02 Switched to native futex on NetBSD 2024-04-25 21:50:34 +02:00
Andreas T Jonsson
80067a959b Added thread name
Call pthread_setname_np with the correct number of arguments on NetBSD.
2024-04-17 09:42:41 +02:00
Andreas T Jonsson
4558f3992a Initial commit of NetBSD port 2024-04-16 14:27:29 +02:00
gingerBill
3bc7c51325 Merge pull request #3283 from laytan/darwin-new-wait-on-address-api
darwin: use new wait on address API if possible
2024-03-27 11:20:32 +00:00
gingerBill
600ca83386 Merge pull request #3326 from rick-masters/fix_fields_wait_signal
Fix fields_wait_signal futex.
2024-03-25 13:29:08 +00:00
gingerBill
e5629dafd0 Potentially fix a race condition with parapoly types (related to #3328) 2024-03-25 13:23:43 +00:00
rick-masters
6d4f30de1a Fix fields_wait_signal futex. 2024-03-24 16:28:55 +00:00
Laytan Laats
9c455b2213 darwin: use new wait on address API if possible 2024-03-15 21:43:16 +01:00
avanspector
d4d9f55556 Update threading.cpp 2024-03-01 00:41:28 +01:00
avanspector
24c8b15409 small fixes 2024-02-25 02:38:35 +01:00
avanspector
028a79e66c Update threading.cpp 2024-02-25 02:34:41 +01:00
avanspector
824c831190 Implement futex 2024-02-24 23:46:55 +01:00
Slendi
c178f7199d Get Odin to compile on Haiku
This patch makes Odin to compile on Haiku which is a good first step.
Now, all that's needed to do is to figure out how to do futexes, which
I am blaming for the program crashing.
2024-02-15 15:51:28 +02:00
gingerBill
c5c2a4d09d Fix typo 2024-02-13 17:13:39 +00:00
gingerBill
d496dbf3a0 Fix race condition with #soa 2024-02-13 16:54:41 +00:00
gingerBill
cbfb32c34c Fix race condition with regards to #soa arrays by using the fields mutex 2024-02-13 16:21:41 +00:00
Stan Irvin-Wilmot
7b53dbeb8a fix loop condition on compare_exhange_strong result in semaphore_wait - it was backwards so would loop on success and bail on fail 2024-01-10 15:53:00 +00:00
Paco Pascal
d9fab5e824 Return value of _umtx_op on FreeBSD wasn't checked correctly 2023-11-18 20:56:22 -05:00
gingerBill
8b4c530062 Disable HAS_VALGRIND logic for BlockingMutex (fixes #2703) 2023-08-16 11:02:09 +01:00
gingerBill
6909e0d774 Minor changes to Semaphore to make it trivially copyable 2023-01-18 15:41:39 +00:00
gingerBill
4a8564aff7 Update threading.cpp to have helgrind annotations 2023-01-16 19:23:13 +00:00
gingerBill
15469758de Merge branch 'master' into compiler-improvements-2023-01 2023-01-10 16:25:38 +00:00
Colin Davidson
a58650728e fix futex error handling 2023-01-05 01:27:37 -08:00
gingerBill
d06a0e7093 Improve the PtrSet to be as simple and small as possible 2023-01-04 13:30:27 +00:00
gingerBill
c7a704d345 Use RwMutex for the Scope 2023-01-03 15:26:47 +00:00
gingerBill
0fb3032b73 General improves to alloc_ast_node and other unnecessary checks 2023-01-03 14:45:09 +00:00
gingerBill
bc9ee8e1a4 Remove loops within futex signals on Linux 2023-01-02 22:13:49 +00:00
gingerBill
52b319dbfd Fix darwin's futex implementation in the compiler 2023-01-02 21:53:41 +00:00
gingerBill
0e040be941 Add define for darwin 2023-01-02 17:49:16 +00:00
gingerBill
9737b65d9c Explicitly call store for futex 2023-01-02 17:18:59 +00:00
gingerBill
c293f5b7eb Remove unneeded mutex 2023-01-02 16:56:05 +00:00
gingerBill
da479c7628 Minor style change 2023-01-02 00:35:12 +00:00
gingerBill
3c90a05957 Replace condition+mutex with futex 2023-01-02 00:26:17 +00:00