The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Steffen Nurpmeso <steffen@sdaoden.eu>
To: Bakul Shah <bakul@iitbombay.org>
Cc: TUHS main list <tuhs@minnie.tuhs.org>
Subject: Re: [TUHS] Threads vs... not
Date: Fri, 06 Aug 2021 16:19:24 +0200	[thread overview]
Message-ID: <20210806141924.O2Y1R%steffen@sdaoden.eu> (raw)
In-Reply-To: <74E8349E-95A4-40C9-B429-11A4E396BE12@iitbombay.org>

Bakul Shah wrote in
 <74E8349E-95A4-40C9-B429-11A4E396BE12@iitbombay.org>:
 |On Aug 4, 2021, at 2:48 PM, Lawrence Stewart <stewart@serissa.com> wrote:
 |> 
 |> What do folks think about event-driven programming as a substitute \
 |> for threads in UI and process control settings?
 |
 |The equivalence here is with coroutines (sometimes called
 |green-threads), not true threads. True threads can take
 |advantage of multiple cores.  Your event-driven program won't
 |benefit from multiple cores.
 |
 |> I wrote the service processor code for the Sicortex Machines using \
 |> libevent.a and I thought it was very lightweight and fairly easy \
 |> to think about. (This was a thing running on ucLinux on a tiny 16 \
 |> MB coldfire that managed the consoles and power supplies and temp \
 |> sensors and JTAG access and booting and so forth.)
 |
 |I wrote the RealNetworks media server code using an
 |event-driven model.  It was efficient but the control flow got
 |quite messy as effectively my code had to do explicit
 |continuation passing. Given that each media stream was
 |independent of other streams, a thread based model was far
 |simpler.  That is what a colleague did to test the server
 |code!

Only twenty years ago but i was under the impression that i got
good (better) performance by having a single event loop object
(thread) doing the select(2) aka the OS interaction, as the driver
under the hood of an IOEvent thing, which then were emitted.
These then dispatched to worker threads, or not.  It may be
different today with those highly refined mechanisms poll, epoll,
kqueue.  It may anyway be different with whatever operating system
specific things, for example FreeBSD had or has some network ring
where user and kernel space could simply exchange buffers, ?, well
i remember it was written by an Italien (Professor?) living in
Pisa, in sight of the lopsided tower.  And then the audioring
technology Creative Labs shipped with X-Fi ~2005.

--steffen
|
|Der Kragenbaer,                The moon bear,
|der holt sich munter           he cheerfully and one by one
|einen nach dem anderen runter  wa.ks himself off
|(By Robert Gernhardt)

  reply	other threads:[~2021-08-06 14:20 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-04 21:48 Lawrence Stewart
2021-08-04 22:02 ` Larry McVoy
2021-08-04 22:41   ` John Cowan
2021-08-04 22:51     ` Larry McVoy
2021-08-05 20:32       ` Clem Cole
2021-08-06  0:55       ` Dan Cross
2021-08-04 22:13 ` Anthony Martin
2021-08-05 23:02 ` Bakul Shah
2021-08-06 14:19   ` Steffen Nurpmeso [this message]
2021-08-06 14:43     ` John Cowan
2021-08-06 15:12       ` Steffen Nurpmeso

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210806141924.O2Y1R%steffen@sdaoden.eu \
    --to=steffen@sdaoden.eu \
    --cc=bakul@iitbombay.org \
    --cc=tuhs@minnie.tuhs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).