aboutsummaryrefslogtreecommitdiffstats
path: root/util/async.lua
Commit message (Collapse)AuthorAgeFilesLines
* util: Prefix module imports with prosody namespaceKim Alvefur2023-03-171-3/+3
|
* util.async: Optionally allow too many 'done' callbacksKim Alvefur2022-02-221-2/+2
| | | | | Sometimes, like in mod_c2s and mod_s2s during shutdown, all you want is to wait for the first done() and not complicate things.
* util.async: Add next-tick configurationMatthew Wild2021-11-291-2/+8
| | | | | | | | Running woken runners in the next iteration of the event loop prevents unexpected recursion, unexpected tracebacks, and is generally more predictable. The pattern is borrowed from util.promise, where we're now doing the same.
* util.async: Add sleep() method with configurable scheduling backendMatthew Wild2021-11-291-0/+15
| | | | | | | | | No scheduler set by default, so it will error (we plan to initialize it in util.startup). We wanted to avoid a hard dependency on util.timer (which in turn depends on network backends, etc.), and we didn't add timer.sleep() because we didn't want to add a hard dependency on util.async for things that don't need it.
* util.async: Don't attempt to close thread if not created yetMatthew Wild2020-06-141-1/+1
|
* util.async: Call coroutine.close() on dead threads (Lua 5.4)Matthew Wild2020-06-141-1/+5
|
* util.async: Rename wait -> wait_for (w/compat)Matthew Wild2020-06-131-2/+3
| | | | Agreed this name is clearer and wait_for(thing) reads well in code.
* util.async: Add function for waiting on promises and unpacking the resultsKim Alvefur2019-09-291-0/+16
|
* Many things: switch from hacky multi-arg xpcall implementations to a ↵Matthew Wild2018-10-261-1/+2
| | | | standard util.xpcall
* util.async: Remove sleep functionKim Alvefur2018-08-121-8/+0
| | | | | Dependency on util.timer indirectly caused net.server to be initialized before the config was read, so server_select was always chosen.
* util.{async,timer}: Move sleep() to reduce dependencies of util.timerKim Alvefur2018-07-081-0/+8
|
* MUC: Add config option to allow members to invite other members to the room ↵Matthew Wild2018-07-061-2/+2
| | | | (previously only owners/admins could do this)
* util.async: Copy hooks from main thread into coroutinesMatthew Wild2018-06-251-0/+1
|
* util.async: Move runner id into log tagKim Alvefur2018-05-041-3/+6
| | | | Avoids string concatenation in every logger call
* util.async: Add helper methods for setting watchersMatthew Wild2018-04-301-0/+16
|
* util.timer: Move sleep() here from util.asyncKim Alvefur2018-03-231-8/+0
| | | | This is to solve a indirect dependency issue where net.server was initialized before the config was read
* util.async: Remove last trace of async.once [luacheck]Kim Alvefur2018-03-231-1/+0
|
* util.async: Remove async.once(), can now be replaced by runner():run(func)Matthew Wild2018-03-231-14/+0
|
* util.async: Make parameters to async.runner() optionalMatthew Wild2018-03-231-3/+7
|
* util.async: Use wrapper for once runner (thanks luacheck)Kim Alvefur2018-03-221-1/+1
|
* util.async: Allow nil as a guard keyMatthew Wild2018-03-221-0/+2
|
* util.async: Add sleep() methodMatthew Wild2018-03-221-1/+9
|
* util.async: Add once() to create temporary runnersMatthew Wild2018-03-221-1/+21
|
* util.async: Add ready() to check whether running in async contextMatthew Wild2018-03-221-1/+5
|
* util.async: Bump log warnings to error levelMatthew Wild2018-03-191-2/+2
|
* util.async: Split runner_continue into smaller functions for easier testing ↵Matthew Wild2018-03-181-8/+29
| | | | and safety
* util.async: Remove redundant line committed by mistake (Zash, luacheck)Matthew Wild2018-03-171-1/+0
|
* util.async: ensure change in e77b37de482e applies after out-of-loop resume alsoMatthew Wild2018-03-171-2/+1
|
* util.async: Behaviour change: continue to process queued items after errorsMatthew Wild2018-03-171-0/+3
|
* util.async: Convert asserts to a return false (same as other unexpected ↵Matthew Wild2018-03-171-2/+4
| | | | behaviour)
* util.async: Add commentMatthew Wild2018-03-161-0/+1
|
* util.async: You can never have too many asserts!Matthew Wild2018-03-161-0/+2
|
* util.async: Ensure runner is left in correct state after out-of-main-loop ↵Matthew Wild2018-03-161-1/+6
| | | | error (+tests)
* util.async: Log the non-error state as well when there is an error being ↵Matthew Wild2018-03-161-1/+1
| | | | processed
* util.async: Bugfix, don't continue main loop while there is a pending errorMatthew Wild2018-03-161-1/+1
|
* util.async: Fix order of statements so queue count makes more senseMatthew Wild2018-03-161-1/+2
|
* util.async: Log warning when unexpected state is reachedMatthew Wild2018-03-161-0/+1
|
* util.async: Add per-runner ids and add runner:log() methodMatthew Wild2018-03-161-1/+10
|
* util.async: Fix thread check to work correctly in Lua 5.2Kim Alvefur2017-11-211-2/+2
| | | | | coroutine.running() now returns the main thread and a boolean true if called from the main thread, as opposed to nil in 5.1
* util.async: Factor out thread check into a functionKim Alvefur2017-11-211-8/+10
|
* util.async: Fix documentation URLWaqas Hussain2017-09-151-2/+2
|
* util.async: Add annotation to ignore warning [luacheck]Kim Alvefur2016-11-191-1/+1
|
* util.async: Rename variable to avoid name clash [luacheck]Kim Alvefur2016-11-191-2/+2
|
* util.async: Add some more comments for clarityMatthew Wild2016-05-221-0/+15
|
* Update every link to the documentation to use HTTPSEmmanuel Gil Peyrot2016-04-161-2/+2
|
* util.async: Make guarder() localMatthew Wild2013-08-131-1/+1
|
* util.async: Add guarder method, to create guards to ensure only a single ↵Matthew Wild2013-08-131-1/+37
| | | | runner can pass through a section of code at a time
* util.async: Fix logic bug that prevented error watcher being called for runnersMatthew Wild2013-08-131-2/+6
|
* util.async: waiter: Throw error if done() called too many timesKim Alvefur2013-08-121-0/+2
|
* util.async: waiter: Remove restriction about wait() being called before done()Matthew Wild2013-08-121-4/+5
|