Yawning Angel
61c581baeb
core/sys/unix: Add syscalls_linux.odin
...
Linux is in the unfortunate situation where the system call number is
architecture specific. This consolidates the system call number
definitions in a single location, adds some wrappers, and hopefully
fixes the existing non-portable invocations of the syscall intrinsic.
2021-11-17 14:00:00 +00:00
gingerBill
3337d38651
Add comments to procedure groups
2021-10-13 23:39:17 +01:00
gingerBill
fc3b0dcc80
Update sync_util.odin
2021-10-13 23:36:42 +01:00
gingerBill
68719779d7
Fix typo
2021-10-12 11:08:57 +01:00
gingerBill
75e3df6da2
Add utility procedure groups for sync primitives
2021-10-12 11:03:52 +01:00
gingerBill
753acc6971
Add wait_group_wait_with_timeout; Allow Sema to be implemented as a Wait_Group
2021-10-11 20:14:26 +01:00
gingerBill
310fd1936b
Clean up _futex_wait_with_timeout on Linux
2021-10-11 19:49:56 +01:00
gingerBill
077bf28d26
Separate Sema implementation from "header"; Allow for either Futex or Mutex+Cond implementations of Sema
2021-10-11 19:48:27 +01:00
gingerBill
d97c6a7657
Rename futex_wake and futex_wake_all to futex_signal and futex_broadcast
2021-10-11 16:40:23 +01:00
gingerBill
46b33854c9
Add sema_wait_with_timeout
2021-10-11 16:35:04 +01:00
gingerBill
5ee3686569
Fix typo
2021-10-11 16:34:50 +01:00
gingerBill
8c9299c139
Use WaitOnAddress instead of RtlWaitOnAddress
2021-10-11 15:23:39 +01:00
gingerBill
240b6aab13
Change futex_wait_with_timeout to return a boolean rather than an enum
2021-10-11 13:23:11 +01:00
gingerBill
a1e8769cff
Add atomic_cond_wait_with_timeout
2021-10-11 13:02:17 +01:00
gingerBill
73cba2cf13
Add cond_wait_with_timeout
2021-10-11 12:55:25 +01:00
gingerBill
2b8807eb73
Keep -vet happy
2021-10-09 16:35:26 +01:00
gingerBill
2ef0e6b8f6
Update core:sync/sync2 to have a generic Futex interface, and implement the calls appropriately for each platform
2021-10-09 16:33:28 +01:00
gingerBill
ca33cb990b
Strip semicolons in core which were missing
2021-09-08 13:12:38 +01:00
gingerBill
720884e0f1
Strip even more semicolons if followed by a } or ) on the same line
2021-08-31 23:47:57 +01:00
gingerBill
f57201bbd1
Remove unneeded semicolons from the core library
2021-08-31 22:32:53 +01:00
gingerBill
251da264ed
Remove unneeded semicolons from the core library
2021-08-31 22:21:13 +01:00
gingerBill
7c108dbf48
Update usage of syscall to use the intrinsics
2021-08-29 14:56:47 +01:00
gingerBill
f0437a4242
Enforce core:builtin and core:intrinsics for imports
2021-08-21 13:44:16 +01:00
gingerBill
df159dbae7
Add some missing files to sync2 for linux and darwin
2021-08-16 15:48:54 +01:00
gingerBill
4035fec784
Add more uses of or_return
2021-08-15 18:13:56 +01:00
gingerBill
3e7aabe6d8
Change uses for parapoly records to use $ always
2021-06-14 11:43:35 +01:00
gingerBill
86649e6b44
Core library clean up: Make range expressions more consistent and replace uses of .. with ..=
2021-06-14 11:15:25 +01:00
gingerBill
fb8ad338d0
Keep -vet happy
2021-06-08 18:26:38 +01:00
gingerBill
8ec2ca9dcd
Remove context.thread_id
2021-06-08 15:57:00 +01:00
gingerBill
fe74b479c6
Begin changes to sync2
2021-05-20 21:02:05 +01:00
gingerBill
a580cdbe7b
Delete core:sync/sync2/channel* stuff (for the time being)
2021-05-19 10:50:27 +01:00
gingerBill
502ad0c10b
sync2.Auto_Reset_Event; Make atomic operations names clearer
2021-05-06 14:00:01 +01:00
gingerBill
ffffb04d85
Remove unused import
2021-04-27 17:21:52 +01:00
gingerBill
17390cd317
Implement sync2.Recursive_Mutex using WaitOnAddress and friends on Windows
2021-04-27 17:19:12 +01:00
gingerBill
7ac80544a1
Max sync2.Sema on windows be i32 for the counter internally.
2021-04-27 16:59:25 +01:00
gingerBill
96b60d8779
Reimplement sync2.Sema on windows with WaitOnAddress primitives
2021-04-27 16:56:11 +01:00
gingerBill
158e4c0b6c
Add @(cold) tag
2021-04-22 10:35:37 +01:00
gingerBill
05a181d719
Fix style issues; Use new attribute @(cold) where appropriate in the new sync package
2021-04-14 20:19:02 +01:00
gingerBill
bee8beb2c9
Default to pthreads in sync2 for *nix
2021-04-13 19:04:44 +01:00
gingerBill
4fb4ada2c7
Update sync2 to just use atomic intrinsics rather than the parapoly wrappers
2021-04-12 15:22:40 +01:00
gingerBill
1156bd9dd0
Remove thread stuff from sync2; Cleanup package thread
2021-04-11 18:25:56 +01:00
gingerBill
52c193316b
Add Thread stuff to new sync package
2021-04-11 15:36:55 +01:00
gingerBill
2db1fe7429
New redesign of core:sync (stored under core:sync/sync2 for the time being)
2021-04-11 15:18:28 +01:00
gingerBill
b727b6438b
Minimize unneeded casts
2021-03-03 14:31:17 +00:00
gingerBill
aa93305015
Replace usage of inline proc with #force_inline proc in the core library
2021-02-23 16:14:47 +00:00
gingerBill
98ad912509
Fix typo
2020-12-27 16:16:04 +00:00
gingerBill
95b94a0f56
Fix sync.Channel code; add thread.run_with_poly_data and run_with_poly_data(2|3|4) procedures
2020-11-10 15:00:40 +00:00
gingerBill
eea3a1ecd3
Improve sync.Channel to encode the direction into the type
2020-11-09 13:05:02 +00:00
Christian Seibold
577be4a8ae
Get Odin compiling and produced exe's running on FreeBSD
2020-09-14 15:22:35 -05:00
gingerBill
6158a49618
Make sync.atomic_* operations use when statements instead of switch; Make #panic diverging
2020-08-16 12:34:12 +01:00