From: "Björn Lundin" <b.f.lundin@gmail.com>
Subject: Re: GNAT and Tasklets
Date: Wed, 17 Dec 2014 23:52:36 +0100
Date: 2014-12-17T23:52:36+01:00 [thread overview]
Message-ID: <m6t1f1$5th$1@dont-email.me> (raw)
In-Reply-To: <m6susq$5pq$1@loke.gir.dk>
On 2014-12-17 23:08, Randy Brukardt wrote:
> "Niklas Holsti" <niklas.holsti@tidorum.invalid> wrote in message
>
>> As I remember, the user-level thread solution in GNAT had the drawback
>> that if one thread blocked on an OS call, the whole program was blocked.
>
> True, but that's not a real problem in most software (that has to respond in
> human timescales - if you need microsecond response times, forget
> Janus/Ada!).
That kind of rules out a common pattern we have in communication
processes.
Usually we set up a socket, globally, in a package body.
One task does a blocking select() - thus hanging on it - for say 5-30 s.
When a message arrives, it
* logs it in a database table
* acks back to the sender, meaning we own the message now
* Notifies another process to treat the message
* goes back to blocking select
if select() returns timeout,
a check for shutdown is made. This is set in a PO by someone else -
the main program
Another task waits in select/accept for clients to
call it for sending messages - on the same socket,
or to shutdown
A third task calls the second task with keepAlive messages,
periodically, with checks for shutdown mode
A client to the package (usually main) may call shutdown,
which set shutdown-mode in the PO, and closes the global socket.
Closing the socket causes receiving task to unblock, read,
and realize shutdown-mode thus exit.
--
--
Björn
next prev parent reply other threads:[~2014-12-17 22:52 UTC|newest]
Thread overview: 73+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-10 16:31 GNAT and Tasklets vincent.diemunsch
2014-12-11 10:02 ` Jacob Sparre Andersen
2014-12-11 16:30 ` Anh Vo
2014-12-11 18:15 ` David Botton
2014-12-11 21:45 ` Egil H H
2014-12-11 23:09 ` Randy Brukardt
2014-12-12 2:28 ` Jacob Sparre Andersen
2014-12-12 8:46 ` vincent.diemunsch
2014-12-12 23:33 ` Georg Bauhaus
2014-12-13 2:06 ` Brad Moore
2014-12-13 6:50 ` Dirk Craeynest
2014-12-14 0:18 ` Hubert
2014-12-14 21:29 ` vincent.diemunsch
2014-12-16 5:09 ` Brad Moore
2014-12-17 13:24 ` vincent.diemunsch
2014-12-16 4:42 ` Brad Moore
2014-12-17 13:06 ` vincent.diemunsch
2014-12-17 20:31 ` Niklas Holsti
2014-12-17 22:08 ` Randy Brukardt
2014-12-17 22:52 ` Björn Lundin [this message]
2014-12-17 23:58 ` Randy Brukardt
2014-12-18 10:39 ` Björn Lundin
2014-12-18 23:01 ` Randy Brukardt
2014-12-19 8:39 ` Natasha Kerensikova
2014-12-19 23:39 ` Randy Brukardt
2014-12-19 8:59 ` Dmitry A. Kazakov
2014-12-19 11:56 ` Björn Lundin
2014-12-20 0:02 ` Randy Brukardt
2014-12-18 8:42 ` Dmitry A. Kazakov
2014-12-18 8:56 ` vincent.diemunsch
2014-12-18 9:36 ` Dmitry A. Kazakov
2014-12-18 10:32 ` vincent.diemunsch
2014-12-18 11:19 ` Dmitry A. Kazakov
2014-12-18 12:09 ` vincent.diemunsch
2014-12-18 13:07 ` Dmitry A. Kazakov
2014-12-19 10:40 ` Georg Bauhaus
2014-12-19 11:01 ` Dmitry A. Kazakov
2014-12-19 16:42 ` Brad Moore
2014-12-19 17:28 ` Dmitry A. Kazakov
2014-12-19 18:35 ` Brad Moore
2014-12-19 20:37 ` Dmitry A. Kazakov
2014-12-20 1:05 ` Randy Brukardt
2014-12-20 17:36 ` Brad Moore
2014-12-21 18:23 ` Brad Moore
2014-12-21 19:21 ` Shark8
2014-12-21 19:45 ` Brad Moore
2014-12-21 23:21 ` Shark8
2014-12-22 16:53 ` Brad Moore
2014-12-21 21:35 ` tmoran
2014-12-21 22:50 ` Brad Moore
2014-12-21 23:34 ` Shark8
2014-12-22 16:55 ` Brad Moore
2014-12-22 23:06 ` Randy Brukardt
2014-12-20 16:49 ` Dennis Lee Bieber
2014-12-20 17:58 ` Brad Moore
2014-12-19 19:43 ` Peter Chapin
2014-12-19 20:45 ` Georg Bauhaus
2014-12-19 20:56 ` Dmitry A. Kazakov
2014-12-19 23:55 ` Randy Brukardt
2014-12-19 23:51 ` Randy Brukardt
2014-12-18 22:33 ` Randy Brukardt
2014-12-19 13:01 ` GNAT�and Tasklets vincent.diemunsch
2014-12-19 17:46 ` GNAT?and Tasklets Brad Moore
2014-12-20 0:39 ` GNAT and Tasklets Peter Chapin
2014-12-20 9:03 ` Dmitry A. Kazakov
2014-12-20 0:58 ` GNAT�and Tasklets Randy Brukardt
2014-12-18 9:34 ` GNAT and Tasklets Niklas Holsti
2014-12-18 9:50 ` Dmitry A. Kazakov
2014-12-17 21:08 ` Brad Moore
2014-12-18 8:47 ` vincent.diemunsch
2014-12-18 21:58 ` Randy Brukardt
2014-12-17 22:18 ` Randy Brukardt
2014-12-18 0:56 ` Shark8
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox