1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00
v/examples/coroutines/simple_coroutines.v
2023-06-03 19:05:50 +02:00

53 lines
960 B
V

// Build with
// v -use-coroutines simple_coroutines.v
//
import coroutines
import time
import os
import net.http
fn foo(a int) {
for {
println('hello from foo() a=${a}')
coroutines.sleep(1 * time.second)
}
}
fn foo2(a int) {
mut i := 0
for {
println('hello from foo2() a=${a}')
coroutines.sleep(2 * time.second)
i++
// resp := http.get('https://vlang.io/utc_now') or { panic(err) }
// resp := http.get('http://example.com') or { panic(err) }
// println(resp)
// mut f := os.create('/tmp/FOO2_a${i}') or { panic(err) }
// f.write_string(resp.body) or { panic(err) }
// f.close()
}
}
fn foo3(a int) {
for {
println('hello from foo3() a=${a}')
coroutines.sleep(3 * time.second)
}
}
fn main() {
go foo(10)
go foo2(20)
go foo3(30)
$if is_coroutine ? {
println('IS COROUTINE=true')
} $else {
println('IS COROUTINE=false')
}
for {
println('hello from MAIN')
coroutines.sleep(1 * time.second)
}
println('done')
}