Mercurial > prosody-hg
comparison util/async.lua @ 5790:959163e4d631
util.async: Make functions local
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Mon, 12 Aug 2013 10:27:08 +0100 |
| parents | 3556f338caa3 |
| children | 2c98061b6b1e |
comparison
equal
deleted
inserted
replaced
| 5789:3b05a86631b9 | 5790:959163e4d631 |
|---|---|
| 20 runner:run(); | 20 runner:run(); |
| 21 end | 21 end |
| 22 return true; | 22 return true; |
| 23 end | 23 end |
| 24 | 24 |
| 25 function waiter(num) | 25 local function waiter(num) |
| 26 local thread = coroutine.running(); | 26 local thread = coroutine.running(); |
| 27 if not thread then | 27 if not thread then |
| 28 error("Not running in an async context, see http://prosody.im/doc/developers/async"); | 28 error("Not running in an async context, see http://prosody.im/doc/developers/async"); |
| 29 end | 29 end |
| 30 num = num or 1; | 30 num = num or 1; |
| 52 assert(coroutine.resume(thread, self)); -- Start it up, it will return instantly to wait for the first input | 52 assert(coroutine.resume(thread, self)); -- Start it up, it will return instantly to wait for the first input |
| 53 return thread; | 53 return thread; |
| 54 end | 54 end |
| 55 | 55 |
| 56 local empty_watchers = {}; | 56 local empty_watchers = {}; |
| 57 function runner(func, watchers, data) | 57 local function runner(func, watchers, data) |
| 58 return setmetatable({ func = func, thread = false, state = "ready", notified_state = "ready", | 58 return setmetatable({ func = func, thread = false, state = "ready", notified_state = "ready", |
| 59 queue = {}, watchers = watchers or empty_watchers, data = data } | 59 queue = {}, watchers = watchers or empty_watchers, data = data } |
| 60 , runner_mt); | 60 , runner_mt); |
| 61 end | 61 end |
| 62 | 62 |
