v/examples/concurrency/concurrency_http.v

33 lines
660 B
V
Raw Normal View History

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