From 133401ecbc34b0b06a72717c5dd2875293171985 Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Sat, 4 Oct 2014 20:19:12 -0700 Subject: 94 - old multiprocessing experiment --- fork.mu | 12 ++++++++++++ mu.arc | 9 ++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 fork.mu diff --git a/fork.mu b/fork.mu new file mode 100644 index 00000000..42f1956b --- /dev/null +++ b/fork.mu @@ -0,0 +1,12 @@ +(main + (fork (thread2 fn)) + ((1 integer) <- literal 34) + (print (1 integer)) + (jmp (-2 offset)) +) + +(thread2 + ((2 integer) <- literal 35) + (print (2 integer)) + (jmp (-2 offset)) +) diff --git a/mu.arc b/mu.arc index 1fc2c39b..ceca177e 100644 --- a/mu.arc +++ b/mu.arc @@ -164,7 +164,7 @@ (mac caller-arg-idx (context (o idx 0)) ; assignable `((((rep ,context) 'call-stack) ,idx) 'caller-arg-idx)) -(= scheduling-interval* 500) +(= scheduling-interval* 5) (def parse-instr (instr) (iflet delim (pos '<- instr) @@ -295,6 +295,13 @@ print (do1 nil (apply prn (map m arg))) + + ; multiprocessing + run + (run (v arg.0)) + fork + (enq (make-context (v arg.0)) contexts*) + reply (do (pop-stack context) (if empty.context (return ninstrs)) -- cgit 1.4.1-2-gfad0