⍝ Define the "double up" function f←{ (who message)←{1 ⍵} RECV ⍬ ⍝ Recieve a message with no timeout (2×message) SEND who ⍝ Reply with 2×message ∇⍵ ⍝ Recurse } ⍝ Spawn it as a seperate thread id←f&'double up'⊢⍬ ⍝ Check it's status (id, name, mails in mailbox) id ⎕tasks 0 1 4 ⍝ Check our own status ⎕self ⎕tasks 0 1 4 ⍝ Send a few messages to our own mailbox 'hello' SEND ⎕self (⍳2 2) SEND ⎕self ⍝ Send a message to the double up thread (⍳5) SEND id ⍝ Check our own status again ⎕self ⎕tasks 0 1 4 ⍝ We now have a few messages, but we want a specific one.. ⍝ That is, the one where the sender = id {id=⊃⍵:1 ⍵ ⋄ 0} RECV 0 ⍝ We might as well get the other messages as well flush←{ 12::⍵ ⍝ Stop when we get a timeout error m←{1 ⍵} RECV 0 ∇⍵,⊂m } flush ⍬