1: #line 1535 "./lpsrc/flx_pthread.pak"
2:
3: include "flx_faio";
4: include "pthread";
5: open Pthread;
6:
7: print "Pthread spawning test"; endl;
8:
9: proc thr (x:int) { print "Thread "; print x; endl; }
10:
11: proc flx_main
12: {
13: print "Running main\n";
14: var chan = mk_pchannel[int]();
15: var dummy: int;
16:
17: spawn_pthread { thr 1; write (chan,1); };
18: spawn_pthread { thr 2; write (chan,2); };
19: spawn_pthread { thr 3; write (chan,3); };
20: spawn_pthread { thr 4; write (chan,4); };
21: spawn_pthread { thr 5; write (chan,5); };
22: spawn_pthread { thr 6; write (chan,6); };
23: spawn_pthread { thr 7; write (chan,7); };
24: print "Spawned\n";
25: &dummy <- read chan;
26: print "joined "; print dummy; endl;
27: &dummy <- read chan;
28: print "joined "; print dummy; endl;
29: &dummy <- read chan;
30: print "joined "; print dummy; endl;
31: &dummy <- read chan;
32: print "joined "; print dummy; endl;
33: &dummy <- read chan;
34: print "joined "; print dummy; endl;
35: &dummy <- read chan;
36: print "joined "; print dummy; endl;
37: &dummy <- read chan;
38: print "joined "; print dummy; endl;
39: print "Joined all\n";
40: }
41:
42: export proc flx_main of (1) as "flx_main";