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
660 B
V
Raw Normal View History

2020-06-17 03:34:16 +03:00
import net.http
import sync
import time
2020-07-24 13:29:47 +03:00
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
}
2020-07-24 13:29:47 +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
2020-07-24 13:29:47 +03:00
go vlang_time(mut wg)
go remote_ip(mut wg)
2020-06-17 03:34:16 +03:00
wg.wait()
}