comp.lang.ada
 help / color / mirror / Atom feed
From: Simon Wright <simon@pushface.org>
Subject: ACATS & dispatching priorities
Date: Fri, 05 May 2017 18:24:49 +0100
Date: 2017-05-05T18:24:49+01:00	[thread overview]
Message-ID: <lybmr7jjxa.fsf@pushface.org> (raw)

ACATS 4.1 has tests CXD* which test correct Annex D behaviour. I'm
getting problems with them. See [0] for work in progress.

For instance, CXD2002 reports as below (lines starting '*' are reporting
errors):

   ,.,. CXD2002 ACATS 4.1 17-05-03 17:31:31
   ---- CXD2002 Default Task Dispatching - a non-blocking delay puts the
                   task at the tail of the ready queue for that priority.
      * CXD2002 Delay_Task executed before a Sub_Task.
      * CXD2002 Low priority task executed out of order.
      * CXD2002 Sub_Tasks did not run when expected.
   **** CXD2002 FAILED ****************************.

(sometimes the "Low priority task" line doesn't appear).

The binder has correctly set Ceiling priority and FIFO within tasks.

Same on macOS, Debian (both 64-bit). Same with GNAT GPL 2016, GCC
6.1.0. Behaviour not affected by running as root (this used to make a
difference to Linux tasking programs - or was that Solaris?)

Is anyone aware of GNAT limitations in this area? I found [1] ([2] is
prettier), and apparently Ceiling locking isn't supported on Linux. But
it should be OK on macOS???

[0] https://github.com/simonjwright/ACATS
[1]
https://gcc.gnu.org/onlinedocs/gcc-3.1/gnat_rm/Ensuring-Compliance-with-the-Real-Time-Annex.html
[2] https://docs.adacore.com/gnat_rm-docs/html/gnat_rm/gnat_rm/implementation_of_specific_ada_features.html

             reply	other threads:[~2017-05-05 17:24 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-05-05 17:24 Simon Wright [this message]
2017-05-05 22:45 ` ACATS & dispatching priorities Robert A Duff
2017-05-07 19:51 ` Robert Eachus
2017-05-07 20:32   ` Simon Wright
2017-05-09 19:41     ` Randy Brukardt
2017-06-08  9:37       ` Simon Wright
replies disabled

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