File: main_myth.sml

package info (click to toggle)
smlsharp 4.2.0-1~exp1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 125,348 kB
  • sloc: ansic: 16,737; sh: 4,347; makefile: 2,228; java: 742; haskell: 493; ruby: 305; cpp: 284; pascal: 256; ml: 255; lisp: 141; asm: 97; sql: 74
file content (20 lines) | stat: -rw-r--r-- 453 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
fun task i =
    (parse (Vector.sub (files, i)); 1)

fun spawn i n =
    if n <= 1 then task i else 
    let
      val a = n div 2
      val b = n - a
      val t1 = Myth.Thread.create (fn _ => spawn i a)
      val t2 = Myth.Thread.create (fn _ => spawn (i + a) b)
      val r1 = Myth.Thread.join t1
      val r2 = Myth.Thread.join t2
    in
      r1 + r2
    end

fun main () =
    print (Int.toString (spawn 0 (Vector.length files)))

val _ = main ()