Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.arch.embedded > #24595

Re: Common name for a "Task Loop"

From Don Y <blockedofcourse@foo.invalid>
Newsgroups comp.arch.embedded
Subject Re: Common name for a "Task Loop"
Date 2016-07-10 02:01 -0700
Organization A noiseless patient Spider
Message-ID <nlt2rs$s76$1@dont-email.me> (permalink)
References (15 earlier) <52krnb9mmrtr1rvf0mc287dk2fvfeip778@4ax.com> <nlks3n$j9e$1@dont-email.me> <du7lpdFdp2cU1@mid.individual.net> <nlm96u$enr$1@dont-email.me> <du7r75Ff2vrU1@mid.individual.net>

Show all headers | View raw


On 7/7/2016 1:09 PM, Niklas Holsti wrote:
> Don Y wrote:
>>>> Exactly.  "Priority" (in the sense of "set_task_priority()") is just
>>>> an expedient to make coding a scheduler easy.  It tells you *nothing*
>>>> about the task's "importance", "timeliness constraints", etc.
>
> Niklas Holsti wrote:
>>> That is not so, if you follow a systematic and proven
>>> priority-assignment rule.
>>> For example, if you use deadline-monotonic priorities then the order
>>> of task
>>> priorities is equivalent to the order of task deadlines (expressed as the
>>> maximum duration between task activation and completion). So then the
>>> task
>>> priorities certainly tell you a lot about the (relative) timeliness
>>> constraints.
>>>
>>> If you just assign priorities based on some subjective "task importance"
>>> feeling, your statement is valid.
>
> Don Y wrote:
>> Then, EVERY product that employs a priority-based scheduler should have a
>> FORMAL document in part of its deliverables that clearly states these
>> priorities and the method by which they were derived (as you later call
>> them "the basis for one important set of the mathematical methods for
>> verifying real-time performance: schedulability analysis").  So, the
>> next bloke to look at the code knows exactly why they were chosen and
>> which assumptions he/she must *continue* to operate under for those
>> priority assignments to remain valid.
>
> Ideally yes, just as every mechanical engineering project should document its
> design assumptions, stress and strength calculations, etc., and every SW
> project should deliver full design documentation, complete user manuals,
> maintenance manuals, etc.
>
> But seriously, documentation requirements are a different dimension from the
> choice of design and implementation methods. Using a systematic design method
> does not oblige you to document the design, although it makes it much easier to
> document it.

How can you say that?  Do you expect the next soul to read your mind
regarding how and why you made specific choices?  Do you expect them
to retrace your design steps to ensure they understand the assumptions
you've ENCODED in your choice of priorities?

Or, are they free to change your priorities WITH NO EFFECT ON THE
RESULTING IMPLEMENTATION?

If you choose a particular value/rating for a component in a
circuit, you either explicitly document WHY you made that choice
*or* assume it is readily apparent to someone looking at the
schematic diagram: "OK, conditions in which this component
operates are such that this performance criteria is adequately
derated for its reliable use, here"

Are the reasons for your SOFTWARE design choices somehow less
important?

E.g., I am particularly fond of pointers and recursive solutions.
To me, they make the algorithms simpler and more robust.

But, I am careful to document how and why each of these mechanisms
are used and "prove" that they *can't* run amok in my description
of the algorithms, etc.  And, the assumptions that dictate how
future uses/adaptations must operate.

>> Ask yourself how many of those documents you've seen?  Authored?
>
> Several, for both questions. All the day-job projects I work on have such, and
> I am usually the author.

I suspect you are in the minority as (IME) most folks using priority
based schedulers just "pick numbers" and, later, "tweek them" to make
their design work properly.  Usually, with little formal knowledge of
the limitations of the algorithms or the problems that can manifest
(nor the potential solutions *or* the problems with the solutions!)

Would you care to share any of those rationales?  I'm hosting a course
that presents various OS design techniques, scheduling algorithms,
hazzards, etc. and examples of how to (and NOT to) exploit each later
this Fall.  "Fabricating" artificial examples always *feels* like an
artifice; presenting REAL examples allows folks to see ACTUAL tradeoffs.

"This is *why* this approach was chosen over this OTHER approach..."

>> Or, is it just "some suggestive feeling"
>> that led to the small integers chosen?
>
> No. From the requirements, I derive a set of tasks and deadlines, and then
> assign priorities in deadline-monotonic order. Then I analyse or measure WCETs
> and crank the response-time algorithm to check schedulability. The main problem
> is that the task interactions are often more complex than assumed by the
> simpler schedulability analysis methods. Fortunately, in my projects it is
> usually possible to separate hard-real-time tasks from soft-real-time tasks,
> and the interactions of the hard-real-time tasks tend to be rather simple.

And, I suspect, your tasks are largely *periodic*?  And/or orthogonal to
each other?

I have had exactly one project in 40 years of RT design that fit that
mold -- a process that ran at 200Hz (5ms cycle time) with "hard"
deadlines (in the sense that a deadline missed resulted in a failure
of that *cycle* of the process -- a "defective product" to be discarded).
Note that missed hard deadlines didn't indicate a failed *implementation*!

By and large, my projects have consisted of aperiodic, cooperating
tasks driven by "semi-random processes"; processes that can't be easily
quantified nor constrained!  And, running on under-provisioned hardware.

E.g., the example up-thread has a bunch of user I/O's:
- barcode reader
- two serial ports
- keypad
- sensor array
- display
- audio annunciator (sound synthesizer)

There is nothing I can do to prevent a user from scanning a barcode
label at *any* time in the normal operation of the system.  I.e.,
"bars" (not "labels") can arrive for processing at any time.  That's
part of the *appeal* of the system -- the USER drives it instead
of *it* driving the user!

There is nothing I can do to prevent the external hosts from interacting
with the device (independantly of each other as well as the user's
activities).  I can't even *guarantee* that they will honor handshaking
and/or pacing controls.  Yet, I can't erroneously behave in the presence
of THEIR bad behavior!

I can't prevent the user from pressing keys at any time.  Indeed, he
may need to "tell me" something that he deems important.

The sensor array lets me track where blood samples and reagents are
being placed by the user -- sort of a keyboard for "droplets".
I can't limit when or where the user pipettes those samples (yet
I must be able to reliably *see* them else I can't vouch for
their integrity and identity).  I can't even guarantee that the
user won't unplug the sensor array, unplug a comm cable, turn off
power, etc. whenever he chooses.

The display must be refreshed else the user loses that information
channel.  Ditto for audio.  (amusingly, this aspect of the user
interface is the LEAST important!)

I can't control when the power might fail.  Though I can probably place
an upper limit on how OFTEN it can fail!  Or, when the battery backup
will give up the ghost, unceremoniously (the user may have disconnected
the battery *or* not given the device time to charge it!)

How do I assign scheduling priorities to each of these competing,
aperiodic, asynchronous tasks?  Priority effectively assigns
"importance" by directing resources (CPU cycles) to one task at
the expense of others.  Which task(s) are more important than
which OTHER tasks?

     "Let's make everything louder than everything else"

No amount of analysis will produce a schedulable task list.  The
system EXPECTS to encounter overload.  It *expects* to miss
deadlines.  Exactly because it can't control the actions of
those things that are interacting *with* it.  And, because it doesn't
have the resources to address the (boundless) overload that is
possible!

I can take a barcode label and rub it vigorously across the barcode
sensor and watch 100% of real time be consumed by that action.
Yet, when my arm eventually gets tired, the system resumes AND
PROVIDES THE CORRECTLY READ LABEL!  Or not.  But, it will NEVER
provide MISREAD data.

Likewise, if any INCOMING characters were missed on either of the
serial ports, the system will know *where* they have been elided
so there is no possibility of a partial message being misinterpreted
as some OTHER *complete* message:

    "You have (not) succeeded!"
               ^^^

[Of course, outgoing character streams are completely unaffeected]

If the user pipettes blood samples into two or more locations
and the system wasn't able to "notice" which came first, it
will not confuse their ordering or fail to notice that *two*
have, in fact, appeared.  The sanctity of the transactions is
preserved regardless of the detail.

The *environment* (user + other equipment) determines the
performance of the system.  Trying to design for a worst case,
UNCONSTRAINED set of activities and task interactions results
in wasteful overprovisioning -- and STILL doesn't guarantee
that everything can get done!

(e.g., add separate processors for all of these "tasks" so that
each is GUARANTEED to be met -- and you'll then discover that
you now have orders of magnitude more data that must be processed
in the same "real time":  what do I *do* with these 400 barcode
read events in the past 3 seconds?  how do they relate to the
numerous blood samples detected?  and the simultaneous database
updates in that same period?)

I excel at making robust *soft* real-time systems -- recognizing
that MOST applications actually *are* "soft", even those that
folks want to THINK of as "hard".  It's just a lot harder to
implement solutions when you *accommodate* missed deadlines than
it is to simply say:  "I *need* the following resources in order to
guarantee that I meet these deadlines" (regardless of whether
they actually *have* to be met in as timely a fashion as suggested)."

This has natural application with aperiodic, asynchronous environments
as you can't "know" when the next deadline (or even release time) will
come along.  You can't *plan* for it.  But, instead, have to *deal*
with it -- AS BEST YOU CAN, given what else may be happening at that
moment.  You might try to model interarrival times of events and
make some assertions based on those assumptions.  But, when Reality
doesn't adhere to your model, you still have to WORK!  You can't
throw up your hands and claim the user is misbehaving!

In my current project, I use a "value function" as the scheduling
criteria:  a tuple that relates (initial) deadline, a notion of value
and a *hard* deadline (at a hard deadline, the task has no continued
value so can be terminated -- and the associated deadline handler
invoked to compensate for its deletion).  This allows *all* tasks
to share a common "criteria system" -- important as tasks can
(physically) "migrate" between nodes and yet retain their "absolute"
scheduling criteria despite the mix of tasks that they will be
competing with on the new node.  The scheduler can dynamically
decide if the "depreciated" value of a task that has missed its
(soft) deadline is still "worth more" than some other task that may
not yet have reached its deadline -- but that has a "slower
depreciation curve" if it *does* miss its deadline as a result of
that scheduling decision.

At the same time, it allows services provided by one task FBO
another to carry the same "significance" on the scheduler instance
that handles the "service" task (because the service task may be
executing on another node).  So, a task's "importance/urgency"
doesn't change just because of the "urgency" of the task that
is CURRENTLY providing a service to it!  Regardless of where that
"service" task happens to be executing at the current time.

Attempting ANY kind of schedulability analysis on a system this
large (thousands of tasks, hundreds of cores) is simply impossible.
All you can hope for is "best effort".

Or, simply concede that it is not possible to design large systems
and limit your efforts to trivial, "provable" ones.

Back to comp.arch.embedded | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Common name for a "Task Loop" Tim Wescott <seemywebsite@myfooter.really> - 2016-06-24 13:37 -0500
  Re: Common name for a "Task Loop" Lanarcam <lanarcam1@yahoo.fr> - 2016-06-24 21:04 +0200
    Re: Common name for a "Task Loop" Tim Wescott <tim@seemywebsite.com> - 2016-06-24 15:21 -0500
  Re: Common name for a "Task Loop" Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2016-06-24 22:46 +0300
  Re: Common name for a "Task Loop" Les Cargill <lcargill99@comcast.com> - 2016-06-24 14:51 -0500
    Re: Common name for a "Task Loop" Tim Wescott <tim@seemywebsite.com> - 2016-06-24 15:10 -0500
  Re: Common name for a "Task Loop" Rob Gaddi <rgaddi@highlandtechnology.invalid> - 2016-06-24 20:11 +0000
    Re: Common name for a "Task Loop" gtwrek@sonic.net (Mark Curry) - 2016-06-24 20:31 +0000
  Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-24 13:21 -0700
    Re: Common name for a "Task Loop" Tim Wescott <tim@seemywebsite.com> - 2016-06-24 18:31 -0500
      Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-24 17:03 -0700
        Re: Common name for a "Task Loop" upsidedown@downunder.com - 2016-06-25 10:52 +0300
          Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-25 01:07 -0700
            Re: Common name for a "Task Loop" upsidedown@downunder.com - 2016-06-25 14:00 +0300
              Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-25 08:27 -0700
                Re: Common name for a "Task Loop" Tim Wescott <tim@seemywebsite.com> - 2016-06-25 15:50 -0500
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-25 14:45 -0700
                Re: Common name for a "Task Loop" Tim Wescott <seemywebsite@myfooter.really> - 2016-06-25 17:28 -0500
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-26 00:40 -0700
                Re: Common name for a "Task Loop" upsidedown@downunder.com - 2016-06-26 12:41 +0300
            Re: Common name for a "Task Loop" Tim Wescott <tim@seemywebsite.com> - 2016-06-25 15:46 -0500
              Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-25 14:42 -0700
        Re: Common name for a "Task Loop" Tim Wescott <tim@seemywebsite.com> - 2016-06-25 15:43 -0500
          Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-25 14:36 -0700
            Re: Common name for a "Task Loop" Tim Wescott <seemywebsite@myfooter.really> - 2016-06-25 17:25 -0500
              Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-26 00:14 -0700
  Re: Common name for a "Task Loop" Paul Rubin <no.email@nospam.invalid> - 2016-06-24 14:00 -0700
    Re: Common name for a "Task Loop" Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> - 2016-06-25 15:27 +0000
      Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-25 09:41 -0700
        Re: Common name for a "Task Loop" Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> - 2016-06-25 17:59 +0000
          Re: Common name for a "Task Loop" Tim Wescott <seemywebsite@myfooter.really> - 2016-06-25 16:24 -0500
            Re: Common name for a "Task Loop" Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> - 2016-06-26 23:36 +0000
              Re: Common name for a "Task Loop" Tim Wescott <seemywebsite@myfooter.really> - 2016-06-26 19:00 -0500
              Re: Common name for a "Task Loop" upsidedown@downunder.com - 2016-06-27 05:53 +0300
                Re: Common name for a "Task Loop" Tim Wescott <tim@seemywebsite.com> - 2016-06-27 09:43 -0500
                Re: Common name for a "Task Loop" Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> - 2016-06-28 02:39 +0000
          Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-25 15:08 -0700
            Re: Common name for a "Task Loop" Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> - 2016-06-26 23:54 +0000
              Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-26 18:12 -0700
                Re: Common name for a "Task Loop" Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> - 2016-06-28 02:54 +0000
                Re: Common name for a "Task Loop" Dimiter_Popoff <dp@tgi-sci.com> - 2016-06-28 06:20 +0300
                Re: Common name for a "Task Loop" raimond.dragomir@gmail.com - 2016-06-27 22:57 -0700
                Re: Common name for a "Task Loop" Tim Wescott <tim@seemywebsite.com> - 2016-06-28 09:40 -0500
                Re: Common name for a "Task Loop" Mel Wilson <mwilson@the-wire.com> - 2016-06-28 15:38 +0000
                Re: Common name for a "Task Loop" raimond.dragomir@gmail.com - 2016-06-28 08:57 -0700
                Re: Common name for a "Task Loop" Rob Gaddi <rgaddi@highlandtechnology.invalid> - 2016-06-28 16:49 +0000
                Re: Common name for a "Task Loop" Les Cargill <lcargill99@comcast.com> - 2016-06-28 15:35 -0500
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-28 13:54 -0700
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-28 14:04 -0700
                Re: Common name for a "Task Loop" Rob Gaddi <rgaddi@highlandtechnology.invalid> - 2016-06-28 21:09 +0000
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-28 15:14 -0700
                Re: Common name for a "Task Loop" Rob Gaddi <rgaddi@highlandtechnology.invalid> - 2016-06-28 22:30 +0000
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-28 16:06 -0700
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-28 16:18 -0700
                Re: Common name for a "Task Loop" Hans-Bernhard Bröker <HBBroeker@t-online.de> - 2016-06-29 01:32 +0200
                Re: Common name for a "Task Loop" Dimiter_Popoff <dp@tgi-sci.com> - 2016-06-29 01:00 +0300
                Re: Common name for a "Task Loop" Hans-Bernhard Bröker <HBBroeker@t-online.de> - 2016-06-29 00:20 +0200
                Re: Common name for a "Task Loop" Dimiter_Popoff <dp@tgi-sci.com> - 2016-06-29 02:07 +0300
                Re: Common name for a "Task Loop" Rob Gaddi <rgaddi@highlandtechnology.invalid> - 2016-06-28 22:21 +0000
                Re: Common name for a "Task Loop" Dimiter_Popoff <dp@tgi-sci.com> - 2016-06-29 02:20 +0300
                Re: Common name for a "Task Loop" Tim Wescott <seemywebsite@myfooter.really> - 2016-06-28 17:39 -0500
                Re: Common name for a "Task Loop" Dimiter_Popoff <dp@tgi-sci.com> - 2016-06-29 02:29 +0300
                Re: Common name for a "Task Loop" Tim Wescott <tim@seemywebsite.com> - 2016-06-29 09:50 -0500
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-28 15:43 -0700
                Re: Common name for a "Task Loop" Dimiter_Popoff <dp@tgi-sci.com> - 2016-06-29 02:40 +0300
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-28 16:56 -0700
                Re: Common name for a "Task Loop" upsidedown@downunder.com - 2016-06-29 08:04 +0300
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-28 23:22 -0700
                Re: Common name for a "Task Loop" upsidedown@downunder.com - 2016-06-30 09:02 +0300
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-30 02:33 -0700
                Re: Common name for a "Task Loop" upsidedown@downunder.com - 2016-07-02 14:27 +0300
                Re: Common name for a "Task Loop" Wouter van Ooijen <wouter@voti.nl> - 2016-07-02 14:50 +0200
                Re: Common name for a "Task Loop" Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-02 20:18 +0300
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-07-02 07:36 -0700
                Re: Common name for a "Task Loop" upsidedown@downunder.com - 2016-07-02 21:44 +0300
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-07-02 14:36 -0700
                Re: Common name for a "Task Loop" Dimiter_Popoff <dp@tgi-sci.com> - 2016-07-03 06:23 +0300
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-07-03 00:43 -0700
                Re: Common name for a "Task Loop" Les Cargill <lcargill99@comcast.com> - 2016-06-29 11:36 -0500
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-29 09:55 -0700
                Re: Common name for a "Task Loop" Les Cargill <lcargill99@comcast.com> - 2016-06-29 12:53 -0500
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-29 11:29 -0700
                Re: Common name for a "Task Loop" Les Cargill <lcargill99@comcast.com> - 2016-06-29 13:41 -0500
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-29 11:49 -0700
                Re: Common name for a "Task Loop" Richard Damon <Richard@Damon-Family.org> - 2016-07-02 20:48 -0700
                Re: Common name for a "Task Loop" Les Cargill <lcargill99@comcast.com> - 2016-07-03 03:07 -0500
                Re: Common name for a "Task Loop" Richard Damon <Richard@Damon-Family.org> - 2016-07-03 08:06 -0700
                Re: Common name for a "Task Loop" Les Cargill <lcargill99@comcast.com> - 2016-07-03 12:39 -0500
                Re: Common name for a "Task Loop" upsidedown@downunder.com - 2016-07-03 21:44 +0300
                Re: Common name for a "Task Loop" Richard Damon <Richard@Damon-Family.org> - 2016-07-03 16:39 -0700
                Re: Common name for a "Task Loop" Les Cargill <lcargill99@comcast.com> - 2016-07-03 23:57 -0500
                Re: Common name for a "Task Loop" Les Cargill <lcargill99@comcast.com> - 2016-07-04 14:39 -0500
                Re: Common name for a "Task Loop" Dimiter_Popoff <dp@tgi-sci.com> - 2016-07-05 06:04 +0300
                Re: Common name for a "Task Loop" Tim Wescott <seemywebsite@myfooter.really> - 2016-07-05 11:58 -0500
                Re: Common name for a "Task Loop" Reinhardt Behm <rbehm@hushmail.com> - 2016-07-06 10:39 +0800
                Re: Common name for a "Task Loop" Tim Wescott <tim@seemywebsite.com> - 2016-07-06 10:11 -0500
                Re: Common name for a "Task Loop" upsidedown@downunder.com - 2016-07-05 21:57 +0300
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-07-05 12:20 -0700
                Re: Common name for a "Task Loop" Richard Damon <Richard@Damon-Family.org> - 2016-07-04 10:08 -0700
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-07-05 11:59 -0700
                Re: Common name for a "Task Loop" upsidedown@downunder.com - 2016-07-05 22:51 +0300
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-07-05 13:16 -0700
                Re: Common name for a "Task Loop" upsidedown@downunder.com - 2016-07-06 11:31 +0300
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-07-06 03:06 -0700
                Re: Common name for a "Task Loop" Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-06 21:37 +0300
                Re: Common name for a "Task Loop" George Neuner <gneuner2@comcast.net> - 2016-07-07 00:50 -0400
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-07-06 23:16 -0700
                Re: Common name for a "Task Loop" Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-07 21:36 +0300
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-07-07 12:06 -0700
                Re: Common name for a "Task Loop" Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-07 23:09 +0300
                Re: Common name for a "Task Loop" Tim Wescott <tim@seemywebsite.com> - 2016-07-08 11:06 -0500
                Re: Common name for a "Task Loop" Les Cargill <lcargill99@comcast.com> - 2016-07-08 12:50 -0500
                Re: Common name for a "Task Loop" upsidedown@downunder.com - 2016-07-08 23:33 +0300
                Re: Common name for a "Task Loop" Les Cargill <lcargill99@comcast.com> - 2016-07-08 16:40 -0500
                Re: Common name for a "Task Loop" Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-08 23:47 +0300
                Re: Common name for a "Task Loop" Les Cargill <lcargill99@comcast.com> - 2016-07-08 16:48 -0500
                Re: Common name for a "Task Loop" Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-09 21:37 +0300
                Re: Common name for a "Task Loop" Les Cargill <lcargill99@comcast.com> - 2016-07-09 14:26 -0500
                Re: Common name for a "Task Loop" Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-10 00:48 +0300
                Re: Common name for a "Task Loop" Les Cargill <lcargill99@comcast.com> - 2016-07-10 03:29 -0500
                Re: Common name for a "Task Loop" upsidedown@downunder.com - 2016-07-11 06:51 +0300
                Re: Common name for a "Task Loop" Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-11 16:11 +0300
                Re: Common name for a "Task Loop" Les Cargill <lcargill99@comcast.com> - 2016-07-11 12:04 -0500
                Re: Common name for a "Task Loop" upsidedown@downunder.com - 2016-07-12 11:31 +0300
                Re: Common name for a "Task Loop" mac <acolvin@efunct.com> - 2016-07-12 15:08 +0000
                Re: Common name for a "Task Loop" Robert Wessel <robertwessel2@yahoo.com> - 2016-07-12 21:24 -0500
                Memory scrubbing [Was Re: Common name for a "Task Loop"] Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-12 21:11 +0300
                Re: Common name for a "Task Loop" Robert Wessel <robertwessel2@yahoo.com> - 2016-07-12 21:11 -0500
                Re: Common name for a "Task Loop" Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-08 23:35 +0300
                Re: Common name for a "Task Loop" Dimiter_Popoff <dp@tgi-sci.com> - 2016-07-08 23:54 +0300
                Re: Common name for a "Task Loop" upsidedown@downunder.com - 2016-07-09 09:34 +0300
                Re: Common name for a "Task Loop" Dimiter_Popoff <dp@tgi-sci.com> - 2016-07-09 10:28 +0300
                Re: Common name for a "Task Loop" Les Cargill <lcargill99@comcast.com> - 2016-07-09 14:39 -0500
                Re: Common name for a "Task Loop" Les Cargill <lcargill99@comcast.com> - 2016-07-08 16:56 -0500
                Re: Common name for a "Task Loop" Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-09 15:46 +0300
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-07-10 02:41 -0700
                Re: Common name for a "Task Loop" Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-10 17:55 +0300
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-07-16 16:34 -0700
                Re: Common name for a "Task Loop" upsidedown@downunder.com - 2016-07-17 09:56 +0300
                Re: Common name for a "Task Loop" George Neuner <gneuner2@comcast.net> - 2016-07-18 00:08 -0400
                Re: Common name for a "Task Loop" Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-18 21:16 +0300
                Re: Common name for a "Task Loop" George Neuner <gneuner2@comcast.net> - 2016-07-18 23:54 -0400
                Re: Common name for a "Task Loop" upsidedown@downunder.com - 2016-07-19 10:02 +0300
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-07-25 02:56 -0700
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-07-25 02:40 -0700
                Re: Common name for a "Task Loop" George Neuner <gneuner2@comcast.net> - 2016-07-25 17:32 -0400
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-07-25 16:56 -0700
                Re: Common name for a "Task Loop" George Neuner <gneuner2@comcast.net> - 2016-07-26 06:27 -0400
                Re: Common name for a "Task Loop" upsidedown@downunder.com - 2016-07-26 15:59 +0300
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-07-26 06:55 -0700
                Re: Common name for a "Task Loop" Dimiter_Popoff <dp@tgi-sci.com> - 2016-07-26 17:14 +0300
                Re: Common name for a "Task Loop" George Neuner <gneuner2@comcast.net> - 2016-07-26 12:50 -0400
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-07-26 22:07 -0700
                Re: Common name for a "Task Loop" George Neuner <gneuner2@comcast.net> - 2016-07-27 14:22 -0400
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-08-03 04:58 -0700
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-07-26 06:38 -0700
                Re: Common name for a "Task Loop" upsidedown@downunder.com - 2016-07-09 01:28 +0300
                Re: Common name for a "Task Loop" Dimiter_Popoff <dp@tgi-sci.com> - 2016-07-09 09:25 +0300
                Re: Common name for a "Task Loop" Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-09 21:47 +0300
                Re: Common name for a "Task Loop" Mike Perkins <spam@spam.com> - 2016-07-09 11:18 +0100
                Re: Common name for a "Task Loop" Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-09 21:41 +0300
                Re: Common name for a "Task Loop" Tim Wescott <tim@seemywebsite.com> - 2016-07-09 20:52 -0500
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-07-10 02:01 -0700
                Re: Common name for a "Task Loop" Niklas Holsti <niklas.holsti@tidorum.invalid> - 2016-07-10 17:34 +0300
                Re: Common name for a "Task Loop" [long] Don Y <blockedofcourse@foo.invalid> - 2016-07-17 01:17 -0700
                Re: Common name for a "Task Loop" Tim Wescott <seemywebsite@myfooter.really> - 2016-07-07 16:02 -0500
                Re: Common name for a "Task Loop" Dimiter_Popoff <dp@tgi-sci.com> - 2016-06-30 04:14 +0300
                Re: Common name for a "Task Loop" Les Cargill <lcargill99@comcast.com> - 2016-06-30 17:07 -0500
                Re: Common name for a "Task Loop" Dimiter_Popoff <dp@tgi-sci.com> - 2016-07-01 02:28 +0300
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-28 12:02 -0700
                Re: Common name for a "Task Loop" Hans-Bernhard Bröker <HBBroeker@t-online.de> - 2016-06-28 23:19 +0200
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-28 11:51 -0700
                Re: Common name for a "Task Loop" Simon Clubley <clubley@remove_me.eisner.decus.org-Earth.UFP> - 2016-07-01 06:54 +0000
        Re: Common name for a "Task Loop" Dimiter_Popoff <dp@tgi-sci.com> - 2016-06-25 21:08 +0300
          Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-25 15:24 -0700
        Re: Common name for a "Task Loop" upsidedown@downunder.com - 2016-06-25 21:52 +0300
          Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-26 01:04 -0700
            Re: Common name for a "Task Loop" upsidedown@downunder.com - 2016-06-26 13:46 +0300
              Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-26 05:11 -0700
                Re: Common name for a "Task Loop" upsidedown@downunder.com - 2016-06-26 15:35 +0300
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-26 06:57 -0700
                Re: Common name for a "Task Loop" Reinhardt Behm <rbehm@hushmail.com> - 2016-06-26 21:18 +0800
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-26 07:07 -0700
                Re: Common name for a "Task Loop" upsidedown@downunder.com - 2016-06-26 17:35 +0300
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-26 07:50 -0700
                Re: Common name for a "Task Loop" Reinhardt Behm <rbehm@hushmail.com> - 2016-06-26 22:37 +0800
                Re: Common name for a "Task Loop" Don Y <blockedofcourse@foo.invalid> - 2016-06-26 08:18 -0700
  Re: Common name for a "Task Loop" Dave Nadler <drn@nadler.com> - 2016-06-25 22:00 -0700
    Re: Common name for a "Task Loop" Tim Wescott <tim@seemywebsite.com> - 2016-06-26 11:01 -0500
    Re: Common name for a "Task Loop" Les Cargill <lcargill99@comcast.com> - 2016-06-26 19:28 -0500
  Re: Common name for a "Task Loop" FreeRTOS info <noemail@given.com> - 2016-06-27 08:33 +0100
    Re: Common name for a "Task Loop" Tim Wescott <tim@seemywebsite.com> - 2016-06-28 09:48 -0500
      Re: Common name for a "Task Loop" raimond.dragomir@gmail.com - 2016-06-28 08:25 -0700
  Re: Common name for a "Task Loop" Chris <xxx.syseng.yyy@gfsys.co.uk> - 2016-07-03 17:39 +0000
  Re: Common name for a "Task Loop" WangoTango <Asgard24@mindspring.com> - 2016-07-14 16:27 -0400
    Re: Common name for a "Task Loop" Rob Gaddi <rgaddi@highlandtechnology.invalid> - 2016-07-14 20:44 +0000

csiph-web