Re: CoCo in 2.0.2

  • From: Ani A <aniruddha.a@xxxxxxxxx>
  • To: luajit@xxxxxxxxxxxxx
  • Date: Sat, 7 Sep 2013 22:47:53 +0530

> Here's one such example:
> http://williamaadams.wordpress.com/2013/02/23/poor-mans-event-driven-io/
>
> -- William
> ===============================
> - Shaping clay is easier than digging it out of the ground.
>
>
> ----------------------------------------
>> Date: Fri, 6 Sep 2013 15:20:30 +0200
>> From: mike-1309@xxxxxxxxxx
>> To: luajit@xxxxxxxxxxxxx
>> Subject: Re: CoCo in 2.0.2
>>
>> Ani A wrote:
>>> What I want to be able to do, from the Lua functions that I am
>>> implementing which calls a C function, at that point, if the
>>> computation takes a while to complete (say, requires network
>>> access), I should be able to yield(), and once the results are
>>> available, resume() and continue the Lua script execution.
>>
>> You can always yield from Lua code. Which implies the C function
>> must be non-blocking: it either returns the result immediately or
>> an indication it cannot do so right now (e.g. EAGAIN in POSIX).
>> You need a Lua wrapper that yields and retries the operation plus
>> a coroutine scheduler that resumes the coroutine when e.g. the
>> file descriptor is readable again. I'm sure there are plenty of
>> Lua examples for this design pattern out there.
>>
>> --Mike
>>

Thanks Mike, and William.

--
Ani

Other related posts: