comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: What exactly is the licensing situation with GNAT?
Date: Fri, 21 Nov 2014 16:12:15 -0600
Date: 2014-11-21T16:12:15-06:00	[thread overview]
Message-ID: <m4odc0$9h8$1@loke.gir.dk> (raw)
In-Reply-To: 1u2gy6fhz9fpr$.vzj1o4ueae0g$.dlg@40tude.net

"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message 
news:1u2gy6fhz9fpr$.vzj1o4ueae0g$.dlg@40tude.net...
> On Thu, 20 Nov 2014 15:23:14 -0600, Randy Brukardt wrote:
>
>> But you seem to have missed my point: in Janus/Ada, task blocking is
>> irrelevant. If a task blocks in an Ada sense, that just causes the task
>> supervisor to select a different task to run.
>
> I see. But how a Janus/Ada task could use blocking sockets then?

A combination of two things: smart polling (don't try to read anything if 
not ready) and setting an imediate timeout for reading (so you get whatever 
is read and nothing more). Essentially, we're using blocking sockets in a 
non-blocking manner. But setting the sockets to non-blocking initially 
caused a lot of additional overhead.

>> (4) A socket write blocks when it reports that it can accept data. This
>> should be rare (it would mainly occur if some buffering issue came up, 
>> and
>> we write relatively small amounts of data at a time to reduce the 
>> likelyhood
>> of overfilling buffers).
>
> A non-blocking socket should accept as much data it can and then
> immediately return.

Maybe, but that's not how it worked when I investigated. Of course, that was 
years ago (and on W2K), so it could have changed.

...
>> (After all, Claw polls Windows for notifications, so the effect is
>> essentially the same at the low level.) I had to assume that there was 
>> some
>> massive expense associated with the non-blocking sockets notifications
>> inside of Windows -- profiling showed that the CPU load wasn't in the Ada
>> code (not even in the interface code). I gave up at that point and 
>> switched
>> back to basic polling with blocking sockets.
>
> If notification was done per Windows messages mechanism then certainly 
> yes,
> this is a heavy burden. However usually all notification is just pulsing 
> an
> event associated with the socket. Single pulse event is shared by all
> sockets to wake up a thread that then restarts polling sockets status. I
> don't know how much overhead is in signaling an event. It should not be
> much.

Event? Windows doesn't have anything like that (the only events I know about 
are messages). Windows does have some sort of Mutex (forget what they're 
called), but I've never paid any attention to them because they are useless 
within the Janus/Ada universe. That's because the whole point of a mutex is 
to block a thread until something sets the mutex, but that would block the 
entire Janus/Ada program. I suppose you could poll one, but you can poll the 
socket (or whatever) directly so there's no benefit to having a mutex.

I suppose one could use some assembler to set up a thread specifically for 
these notifications (that's what we had to do for DNS, not something I'd 
recommend for the faint-of-heart :-), but I don't see any real advantage to 
it.

>> As I said, the situation would be very different for GNAT, where each 
>> worker
>> task is a different thread. That would most likely block each worker task
>> early for a polling implementation, so hardly anything would be counted. 
>> In
>> which case your concern would have been justified. But I didn't run this
>> test with GNAT.
>
> And it would be an awful kind of server design anyway...

Well, it's the way my servers are designed, and it works great (at least for 
typical Internet protocols ike HTTP, SMTP, FTP, etc.). It probably would be 
too slow if one needed much faster latencies (1 millisecond rather than 100 
milliseconds), but I don't need that, and I see no reason to overdesign 
things.

                                               Randy.




  reply	other threads:[~2014-11-21 22:12 UTC|newest]

Thread overview: 242+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-10  9:30 What exactly is the licensing situation with Gnat? Hubert
2014-11-10 10:03 ` Markus Schöpflin
2014-11-10 10:38 ` What exactly is the licensing situation with GNAT? Jacob Sparre Andersen
2014-11-10 11:09   ` Hubert
2014-11-10 11:19     ` Markus Schöpflin
2014-11-10 15:45       ` David Botton
2014-11-11  0:09         ` Hubert
2014-11-11 10:54           ` Georg Bauhaus
2014-11-11 11:05             ` Hubert
2014-11-11 13:37           ` john
2014-11-11 22:52             ` Hubert
2014-11-11 23:10               ` David Botton
2014-11-11 23:25                 ` Alan Jump
2014-11-12  0:50                   ` David Botton
2014-11-12  1:02                     ` Simon Clubley
2014-11-12  7:09                       ` Gour
2014-11-12 11:06                         ` David Botton
2014-11-12  7:41                       ` Simon Wright
2014-11-13  1:30                         ` Simon Clubley
2014-11-12  1:15                     ` Hubert
2014-11-12  1:24                       ` David Botton
2014-11-12  1:33                         ` Hubert
2014-11-12  7:13                         ` Gour
2014-11-12 10:56                           ` David Botton
2014-11-12  8:12                         ` Simon Wright
2014-11-12  8:35                           ` Hubert
2014-11-12  9:25                             ` Mark Carroll
2014-11-12  9:37                               ` Hubert
2014-11-12 10:31                                 ` jm.tarrasa
2014-11-12 10:43                                   ` J-P. Rosen
2014-11-12 10:44                                   ` Hubert
2014-11-12 12:06                                     ` Gour
2014-11-12 12:38                                       ` David Botton
2014-11-12 15:23                                         ` Gour
2014-11-12 16:30                                           ` David Botton
2014-11-12 13:20                                     ` Dmitry A. Kazakov
2014-11-12 22:53                                     ` Randy Brukardt
2014-11-12 23:21                                       ` David Botton
2014-11-13  1:49                                         ` Randy Brukardt
2014-11-13  8:18                                           ` Georg Bauhaus
2014-11-13 21:51                                             ` Randy Brukardt
2014-11-14  8:36                                               ` Dmitry A. Kazakov
2014-11-14 22:24                                                 ` Randy Brukardt
2014-11-14 22:43                                                   ` Jeffrey Carter
2014-11-15  9:18                                                   ` Dmitry A. Kazakov
2014-11-18  0:37                                                     ` Randy Brukardt
2014-11-18  9:04                                                       ` Dmitry A. Kazakov
2014-11-14  4:51                                         ` Randy Brukardt
2014-11-14  5:12                                           ` David Botton
2014-11-14  6:13                                             ` Randy Brukardt
2014-11-14  8:40                                               ` Dmitry A. Kazakov
2014-11-14 22:29                                                 ` Randy Brukardt
2014-11-15  9:29                                                   ` Dmitry A. Kazakov
2014-11-15  9:40                                                     ` Pascal Obry
2014-11-15 11:18                                                     ` Tero Koskinen
2014-11-15 11:36                                                       ` Dmitry A. Kazakov
2014-11-18  0:28                                                     ` Randy Brukardt
2014-11-18  9:20                                                       ` Dmitry A. Kazakov
2014-11-18 22:25                                                         ` Randy Brukardt
2014-11-19  9:10                                                           ` Dmitry A. Kazakov
2014-11-19 23:59                                                             ` Randy Brukardt
2014-11-20  9:53                                                               ` Dmitry A. Kazakov
2014-11-20 21:23                                                                 ` Randy Brukardt
2014-11-21  9:38                                                                   ` Dmitry A. Kazakov
2014-11-21 22:12                                                                     ` Randy Brukardt [this message]
2014-11-22  9:21                                                                       ` Dmitry A. Kazakov
2014-11-15 17:32                                           ` Florian Weimer
2014-11-15 19:58                                             ` 'Image (was: What exactly is the licensing situation with GNAT?) Georg Bauhaus
2014-11-18  0:39                                               ` Randy Brukardt
2014-11-18  8:20                                                 ` 'Image Björn Lundin
2014-11-18 22:29                                                   ` 'Image Randy Brukardt
2014-11-19 13:46                                               ` 'Image (was: What exactly is the licensing situation with GNAT?) Brian Drummond
2014-11-19 14:21                                                 ` 'Image G.B.
2014-11-20 13:32                                                   ` 'Image Brian Drummond
2014-11-13  0:48                                       ` What exactly is the licensing situation with GNAT? sbelmont700
2014-11-13  1:31                                         ` Randy Brukardt
2014-11-13  1:29                                       ` Randy Brukardt
2014-11-13  8:03                                         ` Georg Bauhaus
2014-11-13 22:22                                           ` Randy Brukardt
2014-11-13 16:26                                         ` Tero Koskinen
2014-11-13 22:29                                           ` Randy Brukardt
2014-11-13  1:54                                       ` Hubert
2014-11-13  2:04                                         ` Hubert
2014-11-13  7:53                                         ` Luther Bogart
2014-11-13  7:58                                           ` Luther Bogart
2014-11-13 16:38                                         ` Tero Koskinen
2014-11-13 21:57                                         ` Randy Brukardt
2014-11-13 22:02                                           ` Mark Carroll
2014-11-13 22:43                                           ` Jeffrey Carter
2014-11-14  1:36                                             ` Hubert
2014-11-14  4:45                                               ` Randy Brukardt
2014-11-14  5:24                                                 ` Hubert
2014-11-14  8:51                                               ` Dmitry A. Kazakov
2014-11-14  9:02                                                 ` Stan Mills
2014-11-14 10:14                                                   ` Dmitry A. Kazakov
2014-11-14 10:38                                                     ` Stan Mills
2014-11-14 12:57                                                       ` Peter Chapin
2014-11-14 22:33                                                         ` Randy Brukardt
2014-11-17  8:28                                                         ` Stan Mills
2014-11-14 13:35                                                       ` Dmitry A. Kazakov
2014-11-14 15:29                                                         ` Things that OO programming lacks (was: What exactly is the licensing situation with GNAT?) G.B.
2014-11-14 16:32                                                           ` Things that OO programming lacks Dmitry A. Kazakov
2014-11-15 19:46                                                             ` Georg Bauhaus
2014-11-16 10:18                                                               ` Dmitry A. Kazakov
2014-11-16 18:51                                                                 ` Shark8
2014-11-16 19:33                                                                   ` Dmitry A. Kazakov
2014-11-17 15:17                                                                 ` G.B.
2014-11-17 17:28                                                                   ` Dmitry A. Kazakov
2014-11-17 18:23                                                                     ` G.B.
2014-11-17 20:02                                                                       ` Georg Bauhaus
2014-11-17 21:05                                                                       ` Dmitry A. Kazakov
2014-11-18 10:14                                                                         ` Georg Bauhaus
2014-11-18 13:42                                                                           ` Dmitry A. Kazakov
2014-11-18 18:50                                                                             ` G.B.
2014-11-18 19:18                                                                               ` Dmitry A. Kazakov
2014-11-17 19:21                                                                     ` Shark8
2014-11-17 20:44                                                                       ` Dmitry A. Kazakov
2014-11-16 17:54                                                             ` Simon Wright
2014-11-16 19:01                                                               ` Niklas Holsti
2014-11-16 19:14                                                                 ` Simon Wright
2014-11-16 19:39                                                               ` Dmitry A. Kazakov
2014-11-16 20:33                                                                 ` Simon Wright
2014-11-17  8:44                                                                   ` Dmitry A. Kazakov
2014-11-17 14:29                                                                     ` Simon Wright
2014-11-17 17:38                                                                       ` Dmitry A. Kazakov
2014-11-17  8:36                                                         ` What exactly is the licensing situation with GNAT? Stan Mills
2014-11-17 11:03                                                           ` Dmitry A. Kazakov
2014-11-17 14:20                                                             ` G.B.
2014-11-14  9:19                                                 ` Hubert
2014-11-14 10:30                                                   ` Dmitry A. Kazakov
2014-11-15  1:00                                                     ` Hubert
2014-11-15  1:24                                                       ` Hubert
2014-11-15  9:45                                                         ` Dmitry A. Kazakov
2014-11-15 10:27                                                           ` Hubert
2014-11-15 19:44                                                             ` Robert A Duff
2014-11-15  7:22                                                       ` Gour
2014-11-15  9:57                                                         ` Dmitry A. Kazakov
2014-11-15 10:51                                                           ` Gour
2014-11-15 11:26                                                             ` Dmitry A. Kazakov
2014-11-15 12:41                                                               ` Gour
2014-11-15 13:18                                                                 ` Dmitry A. Kazakov
2014-11-17  8:11                                                     ` Stan Mills
2014-11-17  8:28                                                       ` Dmitry A. Kazakov
2014-11-17  8:48                                                         ` Stan Mills
2014-11-17 10:40                                                           ` Dmitry A. Kazakov
2014-11-13  8:03                                       ` Pete Ballmer
2014-11-13  8:41                                         ` Georg Bauhaus
2014-11-13  8:59                                         ` Georg Bauhaus
2014-11-12 11:18                                   ` David Botton
2014-11-13  0:01                                   ` David Botton
2014-11-13  0:03                                     ` David Botton
2014-11-12 11:15                                 ` David Botton
2014-11-13 23:56                                   ` David Botton
2014-11-14  7:50                                     ` community-based compiler (was Re: What exactly is the licensing situation with GNAT?) Gour
2014-11-14  7:57                                       ` community-based compiler Gour
2014-11-14 14:53                                       ` community-based compiler (was Re: What exactly is the licensing situation with GNAT?) Luke A. Guest
2014-11-14 14:57                                         ` David Botton
2014-11-14 16:16                                           ` Luke A. Guest
2014-11-14 16:34                                             ` David Botton
2014-11-14 16:42                                               ` Luke A. Guest
2014-11-16 19:30                                               ` community-based compiler Florian Weimer
2014-11-14 15:27                                         ` Gour
2014-11-14 16:16                                           ` Luke A. Guest
2014-11-14 16:26                                             ` Gour
2014-11-14 16:48                                               ` Luke A. Guest
2014-11-16 19:31                                                 ` Florian Weimer
2014-11-14 16:03                                         ` community-based compiler (was Re: What exactly is the licensing situation with GNAT?) Tero Koskinen
2014-11-14 22:40                                         ` Randy Brukardt
2014-11-15  1:07                                           ` Luke A. Guest
2014-11-15  8:08                                           ` community-based compiler Gour
2014-11-16 19:29                                         ` Florian Weimer
2014-11-14 17:13                                       ` community-based compiler (was Re: What exactly is the licensing situation with GNAT?) Shark8
2014-11-14 18:55                                         ` David Botton
2014-11-14 20:53                                           ` Shark8
2014-11-14 21:07                                             ` Luke A. Guest
2014-11-14 22:35                                               ` Shark8
2014-11-15  1:07                                                 ` Luke A. Guest
2014-11-18  0:52                                                   ` Randy Brukardt
2014-11-18  3:06                                                     ` Luke A. Guest
2014-11-18  9:25                                                       ` Georg Bauhaus
2014-11-18 22:33                                                       ` Randy Brukardt
2014-11-15 12:44                                             ` Brian Drummond
2014-11-15 22:47                                               ` Shark8
2014-11-16 11:12                                                 ` Brian Drummond
2014-11-16 21:38                                                   ` Shark8
2014-11-17 11:28                                               ` Natasha Kerensikova
2014-11-19 13:48                                                 ` Brian Drummond
2014-11-27 12:52                                                 ` Brian Drummond
2014-11-14 21:05                                           ` Luke A. Guest
2014-11-14  8:25                                     ` What exactly is the licensing situation with GNAT? Pete Ballmer
2014-11-14 12:46                                       ` Peter Chapin
2014-11-15  8:47                                         ` Mart van de Wege
2014-11-16  9:32                                         ` Pete Ballmer
2014-11-16 19:41                                         ` Florian Weimer
2014-11-12 13:31                                 ` Jacob Sparre Andersen
2014-11-12 14:33                                   ` David Botton
2014-11-12 15:07                                     ` David Botton
2014-11-12 16:39                                       ` Simon Wright
2014-11-12 23:06                                     ` Randy Brukardt
2014-11-12 23:31                                       ` David Botton
2014-11-13  1:59                                         ` Randy Brukardt
2014-11-13  2:21                                           ` David Botton
2014-11-13 22:01                                             ` Randy Brukardt
2014-11-12 22:47                                 ` Randy Brukardt
2014-11-12 23:23                                   ` Britt
2014-11-13  2:10                                     ` Randy Brukardt
2014-11-13  5:13                                       ` Shark8
2014-11-13  9:43                                       ` Gour
2014-11-13 22:06                                         ` Randy Brukardt
2014-11-13 23:37                                           ` Gour
2014-11-13 16:51                                     ` Tero Koskinen
2014-11-13  7:46                                   ` George Curioso
2014-11-13 22:14                                     ` Randy Brukardt
2014-11-14  8:18                                       ` George Curioso
2014-11-12 10:53                             ` Simon Wright
2014-11-12 11:19                               ` David Botton
2014-11-12  8:16                         ` Simon Wright
2014-11-12  8:06                       ` Simon Wright
2014-11-12  8:26                         ` Hubert
2014-11-12  7:13                     ` Pascal Obry
2014-11-12  7:47                       ` Hubert
2014-11-12  9:08                       ` Thomas Jahrne
2014-11-12 10:19                         ` Georg Bauhaus
2014-11-12  9:30                       ` Mark Carroll
2014-11-12 11:05                       ` David Botton
2014-11-12 11:32                         ` Pascal Obry
2014-11-12 12:31                           ` David Botton
2014-11-12 13:17                             ` G.B.
2014-11-12 14:21                               ` David Botton
2014-11-12 18:31                                 ` john
2014-11-12 18:56                                   ` David Botton
2014-11-12 19:24                                     ` David Botton
2014-11-13  1:48                                   ` Simon Clubley
2014-11-13  7:40                                     ` Harry Bolger
2014-11-13  8:30                                       ` Georg Bauhaus
2014-11-13  8:41                                         ` Harry Bolger
2014-11-13  8:57                                           ` Georg Bauhaus
2014-11-13 14:30                                           ` Maciej Sobczak
2014-11-13 19:19                                             ` Peter Chapin
2014-11-13 19:43                                               ` David Botton
2014-11-12  7:38                 ` Simon Wright
  -- strict thread matches above, loose matches on Subject: below --
2014-11-13 22:24 Randy Brukardt
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox