[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: icarus, fork, and recursive tasks



On Sat, Nov 6, 2010 at 4:37 PM, DJ Delorie <dj@xxxxxxxxxxx> wrote:
> Not to usefully, they all shared the one task (or variable), and thus
> all exited at exactly the same time.
>
> How do I do a local instantiation of a task?
>

From IEEE 1364-2005:
All variables of a static task shall be static in that there shall be
a single variable corresponding to each declared local variable in a
module instance, regardless of the number of concurrent activations of
the task. However, static tasks in different instances of a module
shall have separate storage from each other.

If a task isn't automatic (which is what you really want), it is
static.  So it seems to me the only way to do what you want to do is
figure out a way to partition things so each twait task is part of a
separate module instantiation.  I haven't confirmed this with Icarus
though.

I've gotten around issues like this before with the ugly hack of just
copy/pasting the task for each caller... twait_cson, twait_wron,
twait_wdon, twait_cswwait, etc...

Jared


_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user