Comment detail

分散関数呼び出し (Nested Flatten)

This comment is reply for 4375 jijixi: JoCaml は OCaml に並行プロ...(分散関数呼び出し). Go to thread root.

> それと、JoCaml では for 文が並行実行されるので、client.ml での price_string の呼び出しはおそらく直列には動いていません。

うっかりしてました。
この話はプロセスコンテキストでは正しいですが、投稿したコードの例では for は式コンテキストで使われているので、この場合は直列に動いているはずです。

この例で並行に動かすなら for の前に spawn を追加すれば良いと思います。(diff 参照)
その場合 for の内部はプロセスコンテキストになるので、price_string をプロセス扱いにするために空のプロセス 0 を付け足しています。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
--- client.ml.orig    2007-11-24 20:24:55.000000000 +0900
+++ client.ml    2007-11-24 20:31:51.000000000 +0900
@@ -9,8 +9,8 @@
         let price_string : int * int -> string =
            Join.Ns.lookup namespace "price_string"
         in
-        for i = 0 to 10000 do
-           ignore (price_string (2000, 20))
+        spawn for i = 0 to 10000 do
+           (ignore (price_string (2000, 20)); 0)
         done;
         print_endline (price_string (2000, 20))
    | _ ->

Index

Feed

Other

Link

Pathtraq

loading...