Skip to content
All guides

systems

Concurrency

Default Buraaq is single-threaded and honest. You get threads when you ask, not an implicit runtime.

Threads

Spawn a function. Join it. Share only what GFA can prove, or unsafe with a lock you actually hold.

Channels

Channel send/recv and Mutex call the C runtime. spawn is an OS thread you join. Cancel is next.

Prefer one thread owning the device or socket when you do not need a channel. Keel's accept loop is already a process, not a thread farm.

Why this stays fast

No green-thread scheduler on the hot path. No stop-the-world. A firmware loop is a loop. A Keel API is a native process serving TLS. If you need work stealing, you build it: the compiler will not hide a runtime under async by default.

Async/await exists as opt-in syntax for I/O-shaped code. It is not required to ship a service.

Next: performance: Gate B versus C++ -O2.