From 232f9e7a167cec04216bdaa2071ecdb20a1fd03c Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Sun, 31 Dec 2017 23:51:33 -0400 Subject: - Added safe (single-threaded) mutation. --- stdlib/test/test/lux/control/thread.lux | 20 ++++++++++++++++++++ stdlib/test/tests.lux | 3 ++- 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 stdlib/test/test/lux/control/thread.lux (limited to 'stdlib/test') diff --git a/stdlib/test/test/lux/control/thread.lux b/stdlib/test/test/lux/control/thread.lux new file mode 100644 index 000000000..3dd27d0ad --- /dev/null +++ b/stdlib/test/test/lux/control/thread.lux @@ -0,0 +1,20 @@ +(.module: + lux + (lux (control [monad #+ do] + ["/" thread]))) + +(def: _test0_ + Nat + (/.run (do /.Monad + [box (/.box +123) + old (/.update (n/* +2) box) + new (/.read box)] + (wrap (n/+ old new))))) + +(def: _test1_ + (All [!] (/.Thread ! Nat)) + (do /.Monad + [box (/.box +123) + old (/.update (n/* +2) box) + new (/.read box)] + (wrap (n/+ old new)))) diff --git a/stdlib/test/tests.lux b/stdlib/test/tests.lux index ecce3d56b..87f9c913d 100644 --- a/stdlib/test/tests.lux +++ b/stdlib/test/tests.lux @@ -21,7 +21,8 @@ ["_." reader] ["_." writer] ["_." state] - ["_." parser]) + ["_." parser] + ["_." thread]) (data ["_." bit] ["_." bool] ["_." error] -- cgit v1.2.3