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


Groups > comp.arch.embedded > #24522

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-03 00:43 -0700
Organization A noiseless patient Spider
Message-ID <nlafmi$ukt$1@dont-email.me> (permalink)
References (12 earlier) <j58fnbl2giluke621jdgjfsahnak14jcfm@4ax.com> <nl8jh6$acj$1@dont-email.me> <bt1gnbtdb83lcbavogvndi9s5ke5bqu9ad@4ax.com> <nl9c3t$t0$1@dont-email.me> <nla0fn$r3v$1@dont-email.me>

Show all headers | View raw


Hi Dimiter,

On 7/2/2016 8:23 PM, Dimiter_Popoff wrote:
> On 03.7.2016 г. 00:36, Don Y wrote:
>> On 7/2/2016 11:44 AM, upsidedown@downunder.com wrote:
>>> With 64 bytes/task, you could fit 3 tasks into 200 bytes and six into
>>> 400 bytes of RAM.
>>
>> With 3 tasks, you probably couldn't implement a municipal traffic light
>> controller!  (don't forget the globals and ISR's)
>
> Don, even splitting things in two tasks can be quite helpful. Say one
> handling the I/O and the other the rest.

Yes, but you ideally want to come up with a "natural decomposition";
how do things *want* to split themselves up instead of how *can* I
split them up.

I like doing lots of little things and getting them 100.0% correct
instead of trying to walk and chew gum -- and risking a latent bug.

E.g., the barcode decoder in the example I previously posted runs in 6 layers:
- an ISR grabs the contents of a freerunning two byte counter-timer using 3
   byte-wide reads (H-L-H / L-H-L); it also reads another counter-timer (the
   one that generated the IRQ from the rising/falling edge of the "video"
   signal) to determine "how long ago" the actual edge occured (this allows
   interrupt latency to be removed from the 3 byte read!); then, programs
   the counter-timer to look for the "opposite" edge (black-to-white vs.
   white-to-black)
- the first "background" task simply watches the FIFO maintained by the
   ISR and extracts data as it becomes available; it notices special
   encodings in the FIFO that indicate the ISR overran the FIFO (so,
   data has been lost *at* that point -- but the data preceding it may
   still represent a valid code); as it extracts each 4-byte entry, it
   converts the 3-byte timer read into a 2-byte read (by noticing if the
   low byte "wrapped" while the read was happening); then, uses the
   "latency time" to adjust the 2-byte value to account for any delay
   that might have been present when the IRQ was actually *serviced*;
   it also passes flags that indicate if the 2-byte timer wrapped more
   than once (cuz the ISR can be idle for long periods of time between
   uses; 0x65535 and 0x0002 may have far more than 3 counts between them!).
   So, this task's primary purpose is to keep the ISR FIFO empty cuz each
   entry there consumes 4 bytes
- the second background task looks at these 2-byte counts (and any interspersed
   flag encodings) and computes time *differences* between them.  It knows
   that the 2 byte counter might not be counting [0..65535] -- or even something
   like [0..MAX_COUNT] -- rather, it can be counting ([0..MAX_LSB],[0..MAX_MSB])
   so has to play games with modular arithmetic but can do the math /in situ/
   without consuming any additional memory (recall the first background task
   will be trying to fill *this* buffer as well!)
- the third grabs groups of 8 (?) "bars" (a "space" is essentially a bar)
   and tries to see if the widths fit the ratios of the barcode that is
   being decoded -- assuming the label has been scanned at a relatively
   constant speed over the course of those bars/spaces; it reduces the
   bars/spaces to a "character" in the format supported by the label.
   If the widths defy the rules for the legal characters, it discards the
   oldest bar/space and tries again
- the fourth looks at groups of characters to decide if they fit the
   form of a label -- correct start character, number of characters,
   check digit, stop character, etc.  If not, then the oldest character
   must be rejected (which means the oldest bar/space must be rejected
   in the *third* task that feeds this.  It also applies more "global"
   tests in an attempt to discard dubious data (goal is to achieve a very
   high "first pass read rate" but an even HIGHER *accuracy* level!).  So,
   it looks at things like how "fast" the label passed the point scanner
   for each of the characters and argues as to whether it is possible
   for that set of scanning speeds to be encountered "in such rapid
   succession".  E.g., if the first character appears to have been scanned
   at a rate of 10 inches per second (based on the time-widths of the
   bars and spaces that it is composed of) but the second character (one
   tenth of an inch from the start of the first!) indicates a scanning speed
   of 80 ips, we know something just isn't right and can discard the
   oldest character, etc.
- Finally, the fifth level takes "whole labels" and tries to concatenate
   them into "super labels" by recognizing certain start-stop character
   combinations AND the time (physical distance between the end of one
   and the start of the next) to see if they conform to a grammar that
   allows them to be combined into a single, continuous label (with the
   EMBEDDED start-stop characters elided)

On top of all this, you're also looking at the data in the context of it
being representative of a label scanned *backwards* -- so, the oldest
bar/space may, in fact, be the LAST one in the label, part of the LAST
character 9stop character), etc.

You can write this as one giant piece of spaghetti code.  And, spend
a boatload of time trying to get it to work RELIABLY (note that you
have to allow a label to be scanned at ANY time, not just when the
user tells you "I'm going to scan a label, now!").  So, testing
is an abysmal way of assuring yourself that the code REALLY works!

Prove it on paper; verify it in the lab!

> Having a multitask scheduler does not mean you don't use loops. You do
> of course - practically always. You just don't have to care about what
> the scheduler gives you in every subroutine you write - just call the
> "task exit for rescheduling" call when your code has to wait. If you
> don't have the scheduler you will have to care about this every step of
> the way, make sure you know where your current stack pointer is
> (subroutine calls; then a subroutine which exits cannot be just
> called from any nesting level etc. etc.).

When you can *afford* a more "flush" environment, I agree that it
makes life a *lot* easier; you don't have to think about how many CPU
cycles you've burned since you last yield()-ed ("Am I starving some
task -- that I don't want to be aware of! -- that really NEEDS the
CPU more than me?").  You don't have to refactor the design as you add
tasks/complexity, etc.

You just concentrate on the individual "jobs" that need to be done.

But, what I'm attempting to show with my example is that you don't
have to make it an all-or-nothing decision; you can still avail
yourself of a multitasking environment (including other "services"
that a real OS would provide) even without all the resources that
you would otherwise ASSUME were needed!

Spaghetti code is never justified, IMO.  Even tiny PICs can benefit
from more structured execution environments.

> If we really have to count the bytes of RAM - let us say we turn the
> clock 25 years back - we can statically assign as much stack as needed
> to each task. We may find out that splitting in 3 tasks can at
> times _save_ memory above a certain complexity...
>
> I thought we'd be done with counting for days every byte by now,

There are still a lot of designs that pinch pennies.  The LORAN
plotter I mentioned ran in 12K of CODE and 256 bytes of RAM.
Back when 2716's were $50/each.  We actually went through the
code to pull out a few hundred bytes by mapping the most frequent
subroutine CALL's (a 3 byte operation) to ReSTart instructions
(one byte SWI's, of a sort).  Silly to put an extra $50 into the
device if it wasn't needed!

Nowadays, there's a lot of cruft added to many products that eats
up a lot of resources before you write your first byte of code.
E.g., communication stacks (ethernet, bluetooth, USB, etc.)
are now common whereas ages ago it was a hundred bytes to handle
a UART!

> last "small" MCU I used was a coldfire in tqfp100 with 16k RAM and
> a sort of 68000 running at 80 MHz.... I just copied and slightly
> adapted the initial (68340 from 1994) DPS scheduler and trap handler,
> cost me virtually nothing.
>
> http://tgi-sci.com/dsv/swgboard.gif
> http://tgi-sci.com/dsv/swg800.gif

Sheesh!  Couldn't you have used a RULER to line up the mounting screws??
<grin>

> http://tgi-sci.com/misc/PICT6999.avi
> http://tgi-sci.com/tgi/auxhv.htm
> No picture of the last, this MCU replaced a huge computer board
> in an 8 channel Ortec alpha counting system so they could use
> two netmca-s to simultaneously select any two vacuum chhambers
> to count, measure the vacuum and plenty of other internals, the
> analog part was intact).
>
> And such an MCU costs well below $10 at Mouser or the likes for
> a single piece....

Yes, but there are complete products that *sell* for less than that!
E.g., I can buy a BT stereo headphone for $5 -- and a FEW people
in the distribution chain are making money on that!  :-/  If
you are looking to create a "consumable" (disposable) product,
then you still *do* need to pinch pennies!

(My speech synthesizer has to fit *inside* something like that ALONGSIDE
its existing functionality and at a comparable price point)

OTOH, there are far too many fun/interesting things that are just not
practical to undertake when hobbled with a resource-starved environment.
And, once you get beyond a certain cost/complexity, the *added* costs
of moving to even richer execution environments is insignificant!

E.g., I recently doubled my clock speed (500M to 1G) and quadrupled
the number of cores in the design.  And, its still laughably "cheap"!

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