DOC: lua: fix yield-dependent methods expected contexts

Contrary to what the doc states, it is not expected (nor relevant) to
use yield-dependent methods such as core.yield() or core.(m)sleep() from
contexts that don't support yielding. Such contexts include body, init,
fetches and converters.

Thus the doc got it wrong since the beginning, because such methods were
never supported from the above contexts, yet it was listed in the list
of compatible contexts (probably the result of a copy-paste), which is
error-prone because it could either cause a Lua runtime error to be
thrown, or be ignored in some other cases.

It should be backported to all stable versions.
This commit is contained in:
Aurelien DARRAGON 2024-11-19 19:28:16 +01:00
parent 6f746af915
commit 501827ebe0

View File

@ -485,7 +485,7 @@ Core class
.. js:function:: core.msleep(milliseconds)
**context**: body, init, task, action
**context**: task, action
The `core.msleep()` stops the Lua execution between specified milliseconds.
@ -841,7 +841,7 @@ Core class
.. js:function:: core.sleep(int seconds)
**context**: body, init, task, action
**context**: task, action
The `core.sleep()` functions stop the Lua execution between specified seconds.
@ -894,7 +894,7 @@ Core class
.. js:function:: core.yield()
**context**: task, action, sample-fetch, converter
**context**: task, action
Give back the hand at the HAProxy scheduler. It is used when the LUA
processing consumes a lot of processing time.