lua-users home
lua-l archive

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


What is this *fiber* thing? I would appreciate if you elaborated a bit on
this or provded some pointers I could follow.
Thank you,
AB

----- Original Message -----
From: "Curt Carpenter" <curtc@microsoft.com>
To: "Multiple recipients of list" <lua-l@tecgraf.puc-rio.br>
Sent: Friday, June 07, 2002 11:23 AM
Subject: RE: cooperative multitasking


> As an platform-specific detail, let me just add that on Win32 I have had
> very successful results using a fiber for each Lua thread, and switching
> the fiber instead of using Lua's coroutines. The major advantage is that
> switching a fiber is just a handful of machine instructions. It
> basically just swaps out registers. Using Lua's coroutines requires that
> you unwind the Lua call stack, wind it back up when you continue. The
> only downside is that you need stack space for each thread (but you
> configure that to just what you need). I have run over 1000 fibers/Lua
> threads without any problems. Plus, with fibers you can switch out while
> in the middle of a registered C function. Anyway, it's not a
> general-purpose Lua thing, so it's not for everyone, but I thought some
> people might be interested in that approach if it's a possibility for
> them.
>
> -----Original Message-----
> From: Luiz Henrique de Figueiredo [mailto:lhf@tecgraf.puc-rio.br]
> Sent: Friday, June 07, 2002 9:56 AM
> To: Multiple recipients of list
> Subject: Re: cooperative multitasking
>
>
> >Long-running threads with lots of processing would be sprinkled with
> >yield calls, no?
>
> Yes, that's why it's called cooperative multitasking.
>
> >Or I suppose one could use the line-hook, although that would be quite
> >slow.
>
> Or the call hook.
>
> Anyway, cooperative multitasking is provide now in the core of Lua. If
> your platform allows multithreading then you can add that too. An
> example is given in LuaThreads:
> http://www.tecgraf.puc-rio.br/~diego/luathreads/
> --lhf
>