summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DOCS/man/javascript.rst2
-rw-r--r--DOCS/man/lua.rst2
-rw-r--r--player/lua/defaults.lua2
3 files changed, 4 insertions, 2 deletions
diff --git a/DOCS/man/javascript.rst b/DOCS/man/javascript.rst
index 99112db40b..e164408266 100644
--- a/DOCS/man/javascript.rst
+++ b/DOCS/man/javascript.rst
@@ -91,7 +91,7 @@ Where the Lua APIs use ``nil`` to indicate error, JS APIs use ``undefined``.
``mp.command_native(table [,def])`` (LE)
``id = mp.command_native_async(table [,fn])`` (LE) Notes: ``id`` is true-thy on
-success, ``fn`` is called always a-sync, ``error`` is empty string on success.
+success, ``error`` is empty string on success.
``mp.abort_async_command(id)``
diff --git a/DOCS/man/lua.rst b/DOCS/man/lua.rst
index cdbe7498c2..546cf93a1d 100644
--- a/DOCS/man/lua.rst
+++ b/DOCS/man/lua.rst
@@ -191,6 +191,8 @@ The ``mp`` module is preloaded, although it can be loaded manually with
If starting the command failed for some reason, ``nil, error`` is returned,
and ``fn`` is called indicating failure, using the same error value.
+ ``fn`` is always called asynchronously, even if the command failed to start.
+
``mp.abort_async_command(t)``
Abort a ``mp.command_native_async`` call. The argument is the return value
of that command (which starts asynchronous execution of the command).
diff --git a/player/lua/defaults.lua b/player/lua/defaults.lua
index 0643c0b1d9..dcbb4e0f62 100644
--- a/player/lua/defaults.lua
+++ b/player/lua/defaults.lua
@@ -617,7 +617,7 @@ function mp.command_native_async(node, cb)
async_next_id = async_next_id + 1
local res, err = mp.raw_command_native_async(id, node)
if not res then
- cb(false, nil, err)
+ mp.add_timeout(0, function() cb(false, nil, err) end)
return res, err
end
local t = {cb = cb, id = id}