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
next prev 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