From e425895a315d65ff9ca1e2d7911c2fd21d49fe5e Mon Sep 17 00:00:00 2001 From: Peter Mikkelsen Date: Mon, 9 May 2022 18:59:23 +0000 Subject: =?UTF-8?q?Fix=20some=20nasty=20bugs=20with=20empty=20lines=20in?= =?UTF-8?q?=20dfns,=20and=20with=20stranding=20of=20=E2=8D=BA=20and=20?= =?UTF-8?q?=E2=8D=B5.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/demo.apl | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 tests/demo.apl (limited to 'tests/demo.apl') diff --git a/tests/demo.apl b/tests/demo.apl new file mode 100644 index 0000000..7a6ddca --- /dev/null +++ b/tests/demo.apl @@ -0,0 +1,31 @@ +⍝ The following demonstrates message passing between an 'iota sever', +⍝ and a client (the user of the iota function). The client always initiates +⍝ communication, and the server must be running, but the client should not +⍝ be able to notice a difference between monadic ⍳ and the iota function, +⍝ even though one does the computation in a different thread. + +iotaServer←{ + msg←1⍨⍇0 + msg≡'stop': ⎕←'Bye bye from indexer' + (from num)←msg + _←(⍳num)⍈from + ∇⍵ +} + +id←0 ⍝ this is an invalid thread id, so it is a sane starting point + +start←{ + id=0: iotaServer&⍬ + id +} + +stop←{ + 'stop'⍈id +} + +iota←{ + ⍝ Sending messages to a nonexisting thread throws a domain error (11) + 11::'Sorry, the iota server is not running' + _←(⎕self ⍵)⍈id + 1⍨⍇0 +} -- cgit v1.2.3