[Date Prev][Date Next][Thread Prev][Thread Next]
- Subject: Re: Fiber thing?
- From: "Christopher S. Charabaruk" <ccharabaruk@...>
- Date: Sat, 08 Jun 2002 03:26:33 -0400
Sorry if my reply was HTML... I'm still getting the hang of MailNews.
Christopher S. Charabaruk wrote:
A fiber is to a thread, what a thread is to a process. I hope that helps.
Alex Bilyk wrote:
What is this *fiber* thing? I would appreciate if you elaborated a bit on
this or provded some pointers I could follow.
----- Original Message -----
From: "Curt Carpenter" <firstname.lastname@example.org>
To: "Multiple recipients of list" <email@example.com>
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
From: Luiz Henrique de Figueiredo [mailto:firstname.lastname@example.org]
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
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:
Chris 'coldacid' Charabaruk <ccharabaruk [at] meldstar [dot] com>
Meldstar Studios <http://www.meldstar.com/> - Creation, cubed.