Skip to content

Commit 6c1af00

Browse files
committed
update scheduler to allow for any default integer size
1 parent 557970e commit 6c1af00

File tree

4 files changed

+11
-7
lines changed

4 files changed

+11
-7
lines changed

basis-library/mlton/HM.sig

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ sig
1010
val registerQueue: Word32.word * 'a array -> unit
1111
val registerQueueTop: Word32.word * Word64.word ref -> unit
1212
val registerQueueBot: Word32.word * Word32.word ref -> unit
13-
val arrayUpdateNoBarrier : 'a array * SeqIndex.int * 'a -> unit
13+
val arrayUpdateNoBarrier : 'a array * int * 'a -> unit
1414
val refAssignNoBarrier : 'a ref * 'a -> unit
15-
val arraySubNoBarrier : 'a array * SeqIndex.int -> 'a
15+
val arraySubNoBarrier : 'a array * int -> 'a
1616
val refDerefNoBarrier : 'a ref -> 'a
1717
end

basis-library/mlton/HM.sml

+6-2
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,13 @@ struct
1313
val registerQueueTop: Word32.word * Word64.word ref -> unit = PrimHM.registerQueueTop
1414
val registerQueueBot: Word32.word * Word32.word ref -> unit = PrimHM.registerQueueBot
1515

16-
val arrayUpdateNoBarrier = PrimHM.arrayUpdateNoBarrier
16+
fun arrayUpdateNoBarrier (a, i, x) =
17+
PrimHM.arrayUpdateNoBarrier (a, SeqIndex.fromInt i, x)
18+
1719
val refAssignNoBarrier = PrimHM.refAssignNoBarrier
1820

19-
val arraySubNoBarrier = PrimHM.arraySubNoBarrier
21+
fun arraySubNoBarrier (a, i) =
22+
PrimHM.arraySubNoBarrier (a, SeqIndex.fromInt i)
23+
2024
val refDerefNoBarrier = PrimHM.refDerefNoBarrier
2125
end

basis-library/schedulers/shh/Scheduler.sml

+2-2
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,8 @@ struct
156156
local
157157
val amOriginal = ref true
158158
val taskBoxes = Array.array (P, NONE)
159-
fun upd i x = HM.arrayUpdateNoBarrier (taskBoxes, Int64.fromInt i, x)
160-
fun sub i = HM.arraySubNoBarrier (taskBoxes, Int64.fromInt i)
159+
fun upd i x = HM.arrayUpdateNoBarrier (taskBoxes, i, x)
160+
fun sub i = HM.arraySubNoBarrier (taskBoxes, i)
161161
in
162162
val _ = Thread.copyCurrent ()
163163
val prototypeThread : Thread.p =

basis-library/schedulers/shh/queue/DequeABP.sml

+1-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ struct
9797
exception Full
9898

9999
fun for (i, j) f = if i = j then () else (f i; for (i+1, j) f)
100-
fun arrayUpdate (a, i, x) = MLton.HM.arrayUpdateNoBarrier (a, Int64.fromInt i, x)
100+
fun arrayUpdate (a, i, x) = MLton.HM.arrayUpdateNoBarrier (a, i, x)
101101
fun cas r (x, y) = MLton.Parallel.compareAndSwap r (x, y)
102102

103103
fun cas32 b (x, y) = cas b (Word32.fromInt x, Word32.fromInt y)

0 commit comments

Comments
 (0)