Current section

Files

Jump to
gleam_otp src gleam_otp.gleam
Raw

src/gleam_otp.gleam

import gleam/io
import gleam/int
import gleam/list
import gleam/otp/task
import gleam/erlang/process.{type Pid}
@external(erlang, "gleam_otp_test_external", "get_message_queue_length")
fn get_message_queue_length(pid pid: Pid) -> Int
fn spawn_task(i) {
task.async(fn() {
case i % 500 == 0 {
True -> io.println("Hello from " <> int.to_string(i))
False -> Nil
}
})
}
pub fn main() {
io.debug(get_message_queue_length(process.self()))
list.range(0, 1_000_000)
|> list.map(spawn_task)
|> list.each(task.await_forever)
io.debug(get_message_queue_length(process.self()))
}