1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00
v/examples/concurrency/concurrency_http.v

33 lines
666 B
V
Raw Permalink Normal View History

2020-06-17 03:34:16 +03:00
import net.http
import sync
import time
fn vlang_time(mut wg sync.WaitGroup) !string {
2020-06-17 03:34:16 +03:00
start := time.ticks()
data := http.get('https://vlang.io/utc_now')!
2020-06-17 03:34:16 +03:00
finish := time.ticks()
2020-07-29 20:11:08 +03:00
println('Finish getting time ${finish - start} ms')
println(data.body)
2020-06-17 03:34:16 +03:00
wg.done()
return data.body
2020-06-17 03:34:16 +03:00
}
fn remote_ip(mut wg sync.WaitGroup) !string {
2020-06-17 03:34:16 +03:00
start := time.ticks()
data := http.get('https://api.ipify.org')!
2020-06-17 03:34:16 +03:00
finish := time.ticks()
2020-07-29 20:11:08 +03:00
println('Finish getting ip ${finish - start} ms')
println(data.body)
2020-06-17 03:34:16 +03:00
wg.done()
return data.body
2020-06-17 03:34:16 +03:00
}
fn main() {
2020-07-24 13:29:47 +03:00
mut wg := sync.new_waitgroup()
2020-06-17 03:34:16 +03:00
wg.add(2)
// Run tasks async
2022-11-05 10:46:40 +03:00
spawn vlang_time(mut wg)
spawn remote_ip(mut wg)
2020-06-17 03:34:16 +03:00
wg.wait()
}