30 Commits

Author SHA1 Message Date
Michael Freundorfer
8b4cd5a3f3 Fix auto reset event signal deadlock
The status variables need to be updated every iteration, otherwise the thread
will spin forever, if another thread waits on the event between the load
and the compare exchange, because the old value is never updated.
2026-03-11 10:08:58 +01:00
gingerBill
fc2cb8fb39 Remove #no_copy 2025-11-05 13:44:14 +00:00
gingerBill
9b8223dd69 Remove use of .no_copy 2025-07-30 23:19:14 +01:00
gingerBill
6a10cfdc30 Fix typo 2025-07-30 23:15:14 +01:00
gingerBill
aa6a749804 Improve atomic logic for sync.Wait_Group 2025-07-30 23:11:18 +01:00
fusion32
bd4afafc66 make once_do_without_data_contextless actually contextless 2025-04-16 12:44:00 -03:00
Feoramund
16cd16b91e Fix comments 2024-09-11 08:39:23 -04:00
Feoramund
b1db33b519 Add cpu_relax to sync.auto_reset_event_signal 2024-09-11 08:39:23 -04:00
Feoramund
a1435a6a90 Fix deadlock in Auto_Reset_Event 2024-09-11 08:39:23 -04:00
Feoramund
fec1ccd7a3 Fix data races in sync.Recursive_Benaphore 2024-09-11 08:39:23 -04:00
Feoramund
b2c2235e58 Fix recursive_benaphore_try_lock
Previously, if the owner called this, it would fail.
2024-09-10 14:52:20 -04:00
Feoramund
0a594147af Use contextless procs in core:sync instead 2024-09-10 14:52:20 -04:00
Feoramund
dbb783fbf2 Fix atomic memory order for sync.ticket_mutex_unlock 2024-09-09 16:19:15 -04:00
Feoramund
9d6f71fd2e Fix sync.Benaphore
The calls to `atomic_add*` return the value before adding, not after, so
the previous code was causing the occasional data race.
2024-09-09 16:19:14 -04:00
flysand7
3aac4b1a3e [sync]: Document all procedures 2024-07-30 19:13:35 +11:00
Laytan Laats
8506e64345 sync: fix deadlock in one shot event 2024-05-02 20:49:29 +02:00
gingerBill
f989f4df3e Add sync.One_Shot_Event 2024-02-21 13:08:12 +00:00
gingerBill
e79883e4fd Add #no_copy to sync primitives 2023-04-15 15:41:30 +01:00
gingerBill
f438153b81 Change to use ODIN_VALGRIND_SUPPORT 2023-01-23 09:29:39 +00:00
gingerBill
117c0cceb1 Add helgrind markers to package sync 2023-01-23 09:24:21 +00:00
gingerBill
f8452bf1fc Add different variants for once_do 2022-12-08 15:58:39 +00:00
gingerBill
20943a81c1 Make sync calls contextless where possible 2022-12-08 15:55:53 +00:00
gingerBill
78a8da5fea Add sync.Parker 2022-04-30 12:37:39 +01:00
gingerBill
d5886c1572 Remove the wait group based semaphore implementation
It was a misuse of the data structure
2022-04-30 12:37:14 +01:00
gingerBill
c78b83f142 Fix _Sema 2022-04-01 14:51:51 +01:00
gingerBill
9f2d710c35 Change intrinsics.Atomic_Memory_Order fields to use Ada_Case rather than snake_case 2022-03-31 12:57:24 +01:00
gingerBill
06e8476efc Correct ordering in auto_reset_event_signal 2022-03-31 10:55:18 +01:00
gingerBill
b2f5b73532 Rename package name to sync 2022-03-31 01:05:50 +01:00
gingerBill
ba1930eb01 Update core to use new atomic intrinsics 2022-03-31 00:22:54 +01:00
gingerBill
4eb4ae6305 Replace sync with sync2 2022-03-30 17:42:44 +01:00