diff options
author | CogentRedTester <cogent.redtester@outlook.com> | 2022-06-22 21:06:09 +0930 |
---|---|---|
committer | Avi Halachmi (:avih) <avihpit@yahoo.com> | 2022-06-22 14:44:12 +0300 |
commit | 099ae8671732a333216a622cba7751f08deff9af (patch) | |
tree | a75d91f44d9abf9b22658e7ec2fe66d844b83182 /DOCS | |
parent | 24f4582b6f7f57f566418551f9252b8578d2b602 (diff) | |
download | mpv-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.rst | 2 | ||||
-rw-r--r-- | DOCS/man/lua.rst | 2 |
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). |