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