Re: OT: Windows (Was: Re: Open Source does not mean easily

Liste des GroupesRevenir à cu programmer 
Sujet : Re: OT: Windows (Was: Re: Open Source does not mean easily
De : cross (at) *nospam* spitfire.i.gajendra.net (Dan Cross)
Groupes : comp.unix.programmer
Date : 07. Jan 2025, 14:59:27
Autres entêtes
Organisation : PANIX Public Access Internet and UNIX, NYC
Message-ID : <vljbvv$gl9$1@reader2.panix.com>
References : 1 2 3 4
User-Agent : trn 4.0-test77 (Sep 1, 2010)
In article <677c7a1b$0$28501$426a74cc@news.free.fr>,
Nicolas George  <nicolas$george@salle-s.org> wrote:
Kalevi Kolttonen, dans le message <vlh5ag$1nruu$1@dont-email.me>, a
�crit�:
I am no expert, but I guess if you need to do async programming
on UNIX/Linux userspace, your best is to use POSIX Threads.
>
Very common misconception.

This is correct. Threads are a concurrency mechanism.  You use
them to write (more or less) sequential execution flows that run
concurrently with respect to one another.  They are not needed
to do "async programming UNIX/Linux userspace".  Indeed, in some
sense they're sort of the antithesis of async programming.

The communication mechanisms between POSIX
threads and Unix I/O are completely alien to each-other: it is not possible
to poll() on a thread condition, nor is it it possible to set up a condition
to be woken by data on a file descriptor. As a result, anybody who tries to
use threads to solve problems of I/O concurrency ends up having to implement
a poll() or equivalent loop in each thread, defeating the purpose.

This, however, does not follow.  I don't see why "poll" is
strictly required for IO concurrency.

In addition to signalfd etc, there is no reason you cannot, say,
have a signal handler that broadcasts on a condition variable
after an asynchronous IO operation completes, thus waking up a
thread.

More generally, in the context of a multithreaded program,
(assuming the POSIX threading model) the "condition to be woken
by data on a file descriptor" is that the IO operation on which
the thread was blocked has completed or been interrupted.  In a
system with kernel scheduled threads, this simply means that the
thread becomes runnable again, and will be resumed at some
point; this is exactly analogous to the sort of state
transitions a process goes through in a traditional Unix-style
kernel when blocked on IO.

Moreover, nothing prevents a program from, say, sharing a
producer/consumer queue between threads where one extracts
entries and performs IO on them while the other prepares IO
operations to be performed by the worker.  For that matter, one
can have multiple IO threads pushing work into a queue that's
executed by a pool of worker threads.

POSIX threads are good to improve on computation concurrency, but they do
not make I/O concurrency simpler, quite the opposite.
>
The same might not be true for other kinds of threads.

A nice property of POSIX threads is that, in _most_
implementations, if you go off and initiate some blocking
operation, such as performing (blocking) IO on a file descriptor
of some sort, other runnable threads in the system can continue
executing.  Thus, it follows that you can have multiple IO
operations in separate threads pending at one time.  In that
sense, one can leverage threads for IO concurrency (indeed, many
programs do just that).  Threads can block independently without
impeding execution of the overall program.

Of course, not all POSIX thread implementations are capable of
doing this: consider a purely userspace "green" thread
implementation; executing a single blocking system call blocks
the whole program.  In those, in many cases, blocking IO is
emulated at the library level (which translates "normal" IO
operations into their non-blocking counterparts) to give the
illusion of sequential program flow; of course, the simulacrum
is inexact at best, which is why most systems push thread
management up into the kernel.

- Dan C.


Date Sujet#  Auteur
30 Sep 24 * Re: Command Languages Versus Programming Languages335Bozo User
30 Sep 24 +* Re: Command Languages Versus Programming Languages5Lawrence D'Oliveiro
1 Oct 24 i`* Re: Command Languages Versus Programming Languages4usuario
2 Oct 24 i `* Re: Command Languages Versus Programming Languages3Muttley
2 Oct 24 i  `* Re: Command Languages Versus Programming Languages2usuario
2 Oct 24 i   `- Re: Command Languages Versus Programming Languages1Muttley
9 Oct 24 `* Re: Command Languages Versus Programming Languages329Rainer Weikusat
10 Oct 24  `* Re: Command Languages Versus Programming Languages328Muttley
10 Oct 24   +* Re: Command Languages Versus Programming Languages87Rainer Weikusat
10 Oct 24   i+* Re: Command Languages Versus Programming Languages76Muttley
10 Oct 24   ii+* Re: Command Languages Versus Programming Languages74Rainer Weikusat
10 Oct 24   iii+* Re: Command Languages Versus Programming Languages69Kaz Kylheku
10 Oct 24   iiii`* Re: Command Languages Versus Programming Languages68Rainer Weikusat
11 Oct 24   iiii `* Re: Command Languages Versus Programming Languages67Bart
11 Oct 24   iiii  `* Re: Command Languages Versus Programming Languages66Rainer Weikusat
11 Oct 24   iiii   `* Re: Command Languages Versus Programming Languages65Muttley
11 Oct 24   iiii    +* Re: Command Languages Versus Programming Languages52Dan Cross
11 Oct 24   iiii    i`* Re: Command Languages Versus Programming Languages51Muttley
11 Oct 24   iiii    i +* Re: Command Languages Versus Programming Languages47Dan Cross
12 Oct 24   iiii    i i`* Re: Command Languages Versus Programming Languages46Muttley
12 Oct 24   iiii    i i `* Re: Command Languages Versus Programming Languages45Dan Cross
12 Oct 24   iiii    i i  `* Re: Command Languages Versus Programming Languages44Muttley
12 Oct 24   iiii    i i   +- Re: Command Languages Versus Programming Languages1Muttley
12 Oct 24   iiii    i i   `* Re: Command Languages Versus Programming Languages42Dan Cross
13 Oct 24   iiii    i i    `* Re: Command Languages Versus Programming Languages41Muttley
13 Oct 24   iiii    i i     +* Re: Command Languages Versus Programming Languages4Janis Papanagnou
13 Oct 24   iiii    i i     i`* Re: Command Languages Versus Programming Languages3Muttley
13 Oct 24   iiii    i i     i `* Re: Command Languages Versus Programming Languages2Janis Papanagnou
13 Oct 24   iiii    i i     i  `- Re: Command Languages Versus Programming Languages1Muttley
13 Oct 24   iiii    i i     `* Re: Command Languages Versus Programming Languages36Dan Cross
13 Oct 24   iiii    i i      +* Re: Command Languages Versus Programming Languages30Muttley
13 Oct 24   iiii    i i      i+- Re: Command Languages Versus Programming Languages1Janis Papanagnou
13 Oct 24   iiii    i i      i+* Re: Command Languages Versus Programming Languages27Dan Cross
13 Oct 24   iiii    i i      ii`* Re: Command Languages Versus Programming Languages26Muttley
13 Oct 24   iiii    i i      ii +* Re: Command Languages Versus Programming Languages17Janis Papanagnou
13 Oct 24   iiii    i i      ii i+* Re: Command Languages Versus Programming Languages9Lawrence D'Oliveiro
14 Oct 24   iiii    i i      ii ii`* Re: Command Languages Versus Programming Languages8Janis Papanagnou
14 Oct 24   iiii    i i      ii ii +* Re: Command Languages Versus Programming Languages2Lawrence D'Oliveiro
14 Oct 24   iiii    i i      ii ii i`- Re: Command Languages Versus Programming Languages1Janis Papanagnou
14 Oct 24   iiii    i i      ii ii `* Re: Command Languages Versus Programming Languages5Nicolas George
14 Oct 24   iiii    i i      ii ii  +* Re: Command Languages Versus Programming Languages2Janis Papanagnou
15 Oct 24   iiii    i i      ii ii  i`- Re: Command Languages Versus Programming Languages1Nicolas George
14 Oct 24   iiii    i i      ii ii  `* Re: Command Languages Versus Programming Languages2Lawrence D'Oliveiro
15 Oct 24   iiii    i i      ii ii   `- Re: Command Languages Versus Programming Languages1Nicolas George
14 Oct 24   iiii    i i      ii i`* Re: Command Languages Versus Programming Languages7Muttley
14 Oct 24   iiii    i i      ii i +- Re: Command Languages Versus Programming Languages1Janis Papanagnou
14 Oct 24   iiii    i i      ii i +- Re: Command Languages Versus Programming Languages1Muttley
14 Oct 24   iiii    i i      ii i +* Re: Command Languages Versus Programming Languages3Bart
15 Oct 24   iiii    i i      ii i i+- Re: Command Languages Versus Programming Languages1David Brown
15 Oct 24   iiii    i i      ii i i`- Re: Command Languages Versus Programming Languages1Dan Cross
14 Oct 24   iiii    i i      ii i `- Re: Command Languages Versus Programming Languages1Lawrence D'Oliveiro
13 Oct 24   iiii    i i      ii +* Re: Command Languages Versus Programming Languages7Dan Cross
14 Oct 24   iiii    i i      ii i`* Re: Command Languages Versus Programming Languages6Muttley
14 Oct 24   iiii    i i      ii i `* Re: Command Languages Versus Programming Languages5Dan Cross
14 Oct 24   iiii    i i      ii i  `* Re: Command Languages Versus Programming Languages4Muttley
14 Oct 24   iiii    i i      ii i   +* Re: Command Languages Versus Programming Languages2David Brown
14 Oct 24   iiii    i i      ii i   i`- Re: Command Languages Versus Programming Languages1Janis Papanagnou
14 Oct 24   iiii    i i      ii i   `- Re: Command Languages Versus Programming Languages1Janis Papanagnou
13 Oct 24   iiii    i i      ii `- Re: Command Languages Versus Programming Languages1Lawrence D'Oliveiro
13 Oct 24   iiii    i i      i`- Re: Command Languages Versus Programming Languages1Lawrence D'Oliveiro
13 Oct 24   iiii    i i      `* Re: Command Languages Versus Programming Languages5Dan Cross
13 Oct 24   iiii    i i       `* Re: Command Languages Versus Programming Languages4Bart
13 Oct 24   iiii    i i        `* Re: Command Languages Versus Programming Languages3Dan Cross
14 Oct 24   iiii    i i         `* Re: Command Languages Versus Programming Languages2Bart
14 Oct 24   iiii    i i          `- Re: On overly rigid definitions (was Re: Command Languages Versus Programming Languages)1Dan Cross
13 Oct 24   iiii    i `* Re: Command Languages Versus Programming Languages3Kaz Kylheku
13 Oct 24   iiii    i  +- Re: Command Languages Versus Programming Languages1Bart
13 Oct 24   iiii    i  `- Re: Command Languages Versus Programming Languages1Dan Cross
11 Oct 24   iiii    +* Re: Command Languages Versus Programming Languages2Rainer Weikusat
12 Oct 24   iiii    i`- Re: Command Languages Versus Programming Languages1Muttley
11 Oct 24   iiii    `* Re: Command Languages Versus Programming Languages10Lawrence D'Oliveiro
12 Oct 24   iiii     `* Re: Command Languages Versus Programming Languages9Muttley
12 Oct 24   iiii      +* Re: Command Languages Versus Programming Languages5Rainer Weikusat
12 Oct 24   iiii      i+* Re: Command Languages Versus Programming Languages3Christian Weisgerber
13 Oct 24   iiii      ii+- Re: Command Languages Versus Programming Languages1Muttley
13 Oct 24   iiii      ii`- Re: Command Languages Versus Programming Languages1Rainer Weikusat
12 Oct 24   iiii      i`- Re: Command Languages Versus Programming Languages1Bart
12 Oct 24   iiii      `* Re: Command Languages Versus Programming Languages3Lawrence D'Oliveiro
13 Oct 24   iiii       `* Re: Command Languages Versus Programming Languages2Muttley
13 Oct 24   iiii        `- Re: Command Languages Versus Programming Languages1Lawrence D'Oliveiro
11 Oct 24   iii+* Re: Command Languages Versus Programming Languages2Bart
11 Oct 24   iiii`- Re: Command Languages Versus Programming Languages1Rainer Weikusat
11 Oct 24   iii`* Re: Command Languages Versus Programming Languages2Muttley
11 Oct 24   iii `- Re: Command Languages Versus Programming Languages1Rainer Weikusat
11 Oct 24   ii`- Re: Command Languages Versus Programming Languages1Lawrence D'Oliveiro
12 Oct 24   i`* Re: Command Languages Versus Programming Languages10Eric Pozharski
13 Oct 24   i `* Re: Command Languages Versus Programming Languages9Muttley
13 Oct 24   i  +- Re: Command Languages Versus Programming Languages1Janis Papanagnou
13 Oct 24   i  +* Re: Command Languages Versus Programming Languages6Rainer Weikusat
14 Oct 24   i  i`* Re: Command Languages Versus Programming Languages5Muttley
14 Oct 24   i  i `* Re: Command Languages Versus Programming Languages4Rainer Weikusat
14 Oct 24   i  i  `* Re: Command Languages Versus Programming Languages3Muttley
14 Oct 24   i  i   `* Re: Command Languages Versus Programming Languages2Rainer Weikusat
14 Oct 24   i  i    `- Re: Command Languages Versus Programming Languages1Muttley
13 Oct 24   i  `- Re: Command Languages Versus Programming Languages1Lawrence D'Oliveiro
11 Nov 24   `* Re: Command Languages Versus Programming Languages240Sebastian
11 Nov 24    +* Re: Command Languages Versus Programming Languages11Muttley
11 Nov 24    i+* Re: Command Languages Versus Programming Languages2Wolfgang Agnes
11 Nov 24    ii`- Re: Command Languages Versus Programming Languages1Muttley
11 Nov 24    i+- Re: Command Languages Versus Programming Languages1Lawrence D'Oliveiro
12 Nov 24    i`* Re: Command Languages Versus Programming Languages7Janis Papanagnou
11 Nov 24    `* Re: Command Languages Versus Programming Languages228Lawrence D'Oliveiro

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal