25 lines
322 B
Text
25 lines
322 B
Text
|
|
# Aliases
|
|
type Receiver = fn() -> any
|
|
type Sender = fn(any)
|
|
|
|
fn new_channel() -> (Sender, Receiver) {
|
|
queue := []
|
|
|
|
fn send(n: any) {
|
|
queue.push(n) # mutate in-place
|
|
}
|
|
|
|
fn recv() -> any | nil {
|
|
queue.pop()
|
|
}
|
|
|
|
(send, recv)
|
|
}
|
|
|
|
(send, recv) := new_channel()
|
|
|
|
(
|
|
send:,
|
|
recv:,
|
|
)
|