v / examples / concurrency
Raw file | 32 loc (29 sloc) | 666 bytes | Latest commit hash e81e0ac70
1import net.http
2import sync
3import time
4
5fn vlang_time(mut wg sync.WaitGroup) !string {
6 start := time.ticks()
7 data := http.get('https://vlang.io/utc_now')!
8 finish := time.ticks()
9 println('Finish getting time ${finish - start} ms')
10 println(data.body)
11 wg.done()
12 return data.body
13}
14
15fn remote_ip(mut wg sync.WaitGroup) !string {
16 start := time.ticks()
17 data := http.get('https://api.ipify.org')!
18 finish := time.ticks()
19 println('Finish getting ip ${finish - start} ms')
20 println(data.body)
21 wg.done()
22 return data.body
23}
24
25fn main() {
26 mut wg := sync.new_waitgroup()
27 wg.add(2)
28 // Run tasks async
29 spawn vlang_time(mut wg)
30 spawn remote_ip(mut wg)
31 wg.wait()
32}