00001 #include <cppscript>
00002
00003 void counter_add(var counter, var value)
00004 {
00005 counter["total"] += value;
00006 }
00007
00008 var counter()
00009 {
00010 return object("counter").extend
00011 ("total", 0)
00012 ("add", counter_add);
00013 }
00014
00015 var script_main(var)
00016 {
00017
00018 var counter1 = counter();
00019 var queue1 = message_queue(counter1["add"]);
00020 finally(queue1["close"]);
00021 counter1["queued_add"] = queue1["post"];
00022
00023
00024 foreach(i, range(1,1000)) counter1["queued_add"](i);
00025
00026
00027 queue1["wait"]();
00028
00029
00030 writeln( "The total is " + counter1["total"] );
00031 return 0;
00032 }
00033