Commit Graph

127 Commits

Author SHA1 Message Date
gingerBill
9eb3da0474 Remove import cycle on FreeBSD 2022-07-18 15:20:28 +01:00
gingerBill
dfbe68bcfe Begin to add support for experimental wasm64 2022-05-21 13:30:43 +01:00
gingerBill
e48f41165c Begin work on Atomics for wasm32 (wait and notify intrinsics) 2022-05-21 12:58:48 +01:00
gingerBill
223897d224 Fix typo 2022-05-18 12:30:44 +01:00
gingerBill
a86574da84 Use RtlWaitOnAddress to allow for a i64 sized duration rather than u32 2022-05-17 22:24:18 +01:00
gingerBill
2720f64c06 Remove unused imports 2022-04-30 13:28:45 +01:00
gingerBill
4e39629a9a Unify implementation for *nix platforms 2022-04-30 13:09:24 +01: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
dd6337224f Correct explicit atomic orderings 2022-04-30 11:42:28 +01:00
gingerBill
10cd294cf2 Use Acquire semantics for the futex_wait load shortcut 2022-04-27 15:57:47 +01:00
gingerBill
d6cfb60506 Remove prev from Atomic_Cond 2022-04-27 15:29:21 +01:00
gingerBill
beb698f31d Merge branch 'master' into sync-cond-futex 2022-04-27 15:21:18 +01:00
gingerBill
bd73b2845b Unify default Sema and Atomic_Sema behaviour 2022-04-27 15:03:48 +01:00
gingerBill
9cf7a31068 Implement _Sema with Atomic_Sema 2022-04-26 13:44:32 +01:00
gingerBill
07d1a42768 Simplify Atomic_Sema implementation 2022-04-26 13:11:34 +01:00
gingerBill
ec8221cb5d Simplify Atomic_Cond implementation 2022-04-26 13:04:50 +01:00
gingerBill
2bc89260f1 Add explicit memory ordering for the internal Sema implementation 2022-04-01 15:08:58 +01:00
gingerBill
c78b83f142 Fix _Sema 2022-04-01 14:51:51 +01:00
gingerBill
77de7ebde5 Remove code deduplication 2022-03-31 13:26:10 +01:00
gingerBill
2ec3fa93b4 Remove pthreads dependency 2022-03-31 13:10:15 +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
6bc0c611ab Enforce success failure pairings of compare_exchange_*_explicit at compile time 2022-03-31 00:49:53 +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
gingerBill
561b725b0e Improve spin lock for atomic_mutex_lock 2022-03-30 16:15:48 +01:00
Sébastien Marie
ca67cf032c freebsd_amd64 support 2022-03-13 11:42:42 +00:00
gingerBill
c12c7d5370 Remove tag 2022-03-12 10:47:52 +00:00
Sébastien Marie
5676c9e7eb initial OpenBSD support 2022-02-25 08:49:25 +00:00
gingerBill
3d7d347192 Convert ODIN_OS and ODIN_ARCH to use enums rather than use strings 2022-01-20 19:56:05 +00:00
gingerBill
2b918ada4b Add .Private information to doc-format 2022-01-19 17:15:10 +00:00
gingerBill
b5754b6ed9 Print examples correctly 2022-01-19 16:35:50 +00:00
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