language · language ·

Tunnels

tunnel carries typed values between concurrent work with capacity-one FIFO handoff and backpressure.

ReceiveSendconcurrencycpuhasValuelanguageoftunnelyeho

Use a tunnel when producers and consumers should communicate without sharing an unbounded mutable queue.

tunnel of Type name
tunnel<Type> name
name.Send(value)
name.Receive()

Status: experimental

Complete tunnels example

Use a tunnel when producers and consumers should communicate without sharing an unbounded mutable queue.

cpu · language · type checked

tunnel of text messages
messages.Send("Player joined")
text message = messages.Receive()
Console.Log(message)
project.mech
manifestVersion = "2"
package = "api.example.language__tunnels"
version = "0.1.0"
languageEdition = "yeho-core-2026.1"

[app]
kind = "headless"
Notes and source

The channel keyword was removed. Use tunnel.

Tunnels are capacity one, FIFO, and backpressured in the current contract.

yeho/errors-tasks-effects-2026.1.json; tests/compiler/errors-tasks-effects/tunnel-handoff/start.yh