lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On Sat, Jul 19, 2008 at 6:52 AM, Luiz Henrique de Figueiredo
<lhf@tecgraf.puc-rio.br> wrote:
>> Alexander Gladysh wrote:
>> I apologise for being not quite in context, so my question may be a
>> silly one. I see the expected use case of this feature roughly as
>> follows (pseudocode):
>>
>> 1. [worker thread] spawn_watchdog_thread(L); lua_pcall(L, <stuff>);
>> stop_watchdog_thread();
>> 2. [watchdog thread] if (spent_too_much_time()) lua_forcereturn(L, 1);
>>
>> If forcereturn is triggered, lua_pcall() returns (prematurely) in
>> worker thread, and worker thread execution continues as usual.

>> <...>

> I fail to see the need for lua_forcereturn: you can just use lua_error.
> Remember the Lua can raise errors on any Lua value, not just strings.
> A suitable error value can be used to transmit any info on the cause
> of error.

Is it good to call lua_error() from another (watchdog) thread? I've
got an impression that this would not work as intended.

Alexander.