I have a question about Lua/C API (5.1) usage:
Is it valid to raise an error on protected, non-currently executed coroutine?
Here  is the example.
The interesting part is lua_CFunction throw_error_at_old_thread():
| static int throw_error_at_old_thread(lua_State *cur_L)
The Lua Reference Manual (5.4) declares that:
| As a general rule, when a C function is called by Lua with a Lua state,
| it can do whatever it wants on that Lua state, as it should be already
| protected. However, when C code operates on *other* Lua states (e.g., a
| Lua-state argument to the function, a Lua state stored in the registry,
| or the result of lua_newthread), it should use them only in API calls
| that cannot raise errors.
In my opinion, "other" means "not protected", but Mike Pall says, that
it means "not currently executed" .
For the Lua 5.1 this operation seems valid to me. Are there any hidden
hazards, that I've missed? Note, that values on the stack doesn't
bother me, assume I manage them carefully in case with/without error.