summaryrefslogtreecommitdiffstats
path: root/DOCS
diff options
context:
space:
mode:
authorCogentRedTester <cogent.redtester@outlook.com>2022-06-22 21:06:09 +0930
committerAvi Halachmi (:avih) <avihpit@yahoo.com>2022-06-22 14:44:12 +0300
commit099ae8671732a333216a622cba7751f08deff9af (patch)
treea75d91f44d9abf9b22658e7ec2fe66d844b83182 /DOCS
parent24f4582b6f7f57f566418551f9252b8578d2b602 (diff)
downloadmpv-099ae8671732a333216a622cba7751f08deff9af.tar.bz2
mpv-099ae8671732a333216a622cba7751f08deff9af.tar.xz
lua: command_native_async: always callback a-sync
Previously if the raw command_native_async returned an error then the callback function was run directly. This meant that script writers potentially had to account for both synchronous and asynchronous logic in the callback, which can happen even with seemingly 'safe' commands if the mpv event queue is full. This was at odds with the Javascript implementation of the function, which always runs the callback asynchronously. Now the mp.add_timeout function is used to run the callback asynchronously on error, replicating the Javascript implementation. This provides consistency for developers in how the callback is handled in Lua, and increases consistency between the Lua and Javascript APIs.
Diffstat (limited to 'DOCS')
-rw-r--r--DOCS/man/javascript.rst2
-rw-r--r--DOCS/man/lua.rst2
2 files changed, 3 insertions, 1 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).