comp.lang.ada
 help / color / mirror / Atom feed
From: Esa Riihonen <esa.riihonen.er@gmail.com>
Subject: Re: How to: communication between multiple tasks using protected objects - with no polling?
Date: Thu, 22 Jan 2015 05:24:32 -0800 (PST)
Date: 2015-01-22T05:24:32-08:00	[thread overview]
Message-ID: <3b5579ff-6a7c-48a7-9fa1-3213ca31c5bf@googlegroups.com> (raw)
In-Reply-To: <8xWvw.618732$ZT5.570497@fx07.iad>

torstai 22. tammikuuta 2015 1.22.45 UTC+2 Hubert kirjoitti:
> the point of a protected object here is that the code each task spends 
> in it should be small, just enough to add an entry to a list or so.
> When you send a message to a task, it can be that the task is involved 
> in a lengthy operatin and thus your task has  to wait until the received 
> task can accept it.
> 
> You could also make a more complex setup, perhaps something like
> 
> Tx1 -> Pox1 -> Tx2 -> Po-final ->Tfinal
> Ty2 -> Poy2 -> Ty2 ^
> 
> and then Have one output PO per worker task and each has it's own task 
> to forward the data to the final PO from which the final task fetches it 
> or so.
> The Ada tasking system is easy enough to use to set up stuff like this 
> pretty quickly and when tasks sleep waiting for an entry they dont eat time.

That surely looks promising - AFAICT this was the model that someone other was also proposing "forwarder tasks".

> Just you have to be careful about the maximimum NOF tasks your system 
> can support which is, I believe, depended on the underlying OS. But in 
> my experience a few dozen are not problem, pehraps even a few 100, 
> depending on how much stack each underlying thread reserves. But I 
> wasn't able to get any hard data on that.

My C-program consists of something like 10 processes currently. So, even if I end up to a full scale Ada implementation with added forwarder tasks, we are still speaking of about a couple of dozen tasks max.

Thanks alot again for the insight.


  reply	other threads:[~2015-01-22 13:24 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-20 22:36 How to: communication between multiple tasks using protected objects - with no polling? Esa Riihonen
2015-01-21  0:19 ` Hubert
2015-01-21 16:53   ` Esa Riihonen
2015-01-21 23:22     ` Hubert
2015-01-22 13:24       ` Esa Riihonen [this message]
2015-01-21  0:47 ` Jeffrey Carter
2015-01-21  8:11   ` Simon Wright
2015-01-21 17:16   ` Esa Riihonen
2015-01-21 18:39     ` Jeffrey Carter
2015-01-22 13:32       ` Esa Riihonen
2015-01-21  8:28 ` Dmitry A. Kazakov
2015-01-21 17:34   ` Esa Riihonen
2015-01-21 18:56     ` Jacob Sparre Andersen
2015-01-21 20:15       ` Dmitry A. Kazakov
2015-01-22 21:52         ` G.B.
2015-01-23  8:25           ` Dmitry A. Kazakov
2015-01-21 20:02     ` Dmitry A. Kazakov
2015-01-22 13:37       ` Esa Riihonen
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox