Software /
code /
prosody
Comparison
util/async.lua @ 10411:db2a06b9ff98
Merge 0.11->trunk
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 16 Nov 2019 16:52:31 +0100 |
parent | 10291:7b48b620164c |
child | 10928:79faf5b98395 |
comparison
equal
deleted
inserted
replaced
10410:659b577f280c | 10411:db2a06b9ff98 |
---|---|
244 | 244 |
245 local function ready() | 245 local function ready() |
246 return pcall(checkthread); | 246 return pcall(checkthread); |
247 end | 247 end |
248 | 248 |
249 local function wait(promise) | |
250 local async_wait, async_done = waiter(); | |
251 local ret, err = nil, nil; | |
252 promise:next( | |
253 function (r) ret = r; end, | |
254 function (e) err = e; end) | |
255 :finally(async_done); | |
256 async_wait(); | |
257 if ret then | |
258 return ret; | |
259 else | |
260 return nil, err; | |
261 end | |
262 end | |
263 | |
249 return { | 264 return { |
250 ready = ready; | 265 ready = ready; |
251 waiter = waiter; | 266 waiter = waiter; |
252 guarder = guarder; | 267 guarder = guarder; |
253 runner = runner; | 268 runner = runner; |
269 wait = wait; | |
254 }; | 270 }; |