comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: tasking design considerations
Date: Fri, 20 Jan 2017 09:42:33 +0100
Date: 2017-01-20T09:42:33+01:00	[thread overview]
Message-ID: <o5sihq$19ul$1@gioia.aioe.org> (raw)
In-Reply-To: 396469b6-6efe-49e7-914b-9226637e031e@googlegroups.com

On 20/01/2017 09:07, rrr.eee.27@gmail.com wrote:
> I am still trapped in old school linear thinking and I am facing a
> tasking design problem.
>
> On channel A I receive messages in a irregular way. I then have to
> collect all messages of a given time frame T, process the messages that
> lie within the time frame and then send out the result to channel B.
 >
> For the ease of reasoning you can assume typically around 0 .. 20
> messages (the maximum certainly << 1000 messages) per time frame T. The
> cycle time of T is fixed now to 1 minute, but might go down in the
> future to 1 second. Channel B of course has exactly one message per T.
> The channels are TCP sockets. Reception of a single complete message in
> channel A activates callback function in my program.
>
> I want now create a protected object stack. The callbacks from
> channel  A fill the stack on the top. A cyclic task with a cycle time T reads and
> removes all collected messages from the bottom of the stack. The task
> processes the messages and sends out the result.
>
> Does that sound like a reasonable and feasable design? I'm looking
> forward to any feedback.

Yes. Two minor notes:

1. It is not a stack (LIFO) it a FIFO, I suppose you want to keep the 
messages ordering.

2. You don't need a protected object or other locking method because a 
FIFO with a single writer and a single reader is task-safe (can be 
designed lock-free).

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


  parent reply	other threads:[~2017-01-20  8:42 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-20  8:07 tasking design considerations rrr.eee.27
2017-01-20  8:29 ` Björn Lundin
2017-01-20  8:42 ` Dmitry A. Kazakov [this message]
2017-01-20 12:32   ` rrr.eee.27
2017-01-20 14:11     ` Dmitry A. Kazakov
2017-01-20 16:01 ` Jeffrey R. Carter
replies disabled

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