This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Ada] Non-preemptive dispatching


Make Non_Preemptive_FIFO_Within_Priorities a standard dispatching policy
name as defined in RM D.2.4(2/2).

Create the language-defined library package Ada.Dispatching.Non_Preemptive,
as defined in RM D.2.4(2.2/3). This package is marked as unimplemented
because no target environment supports it.

Add the procedure Ada.Dispatching.Yield, introduced by Ada 2012 in
RM D.2.1(1.3/3).

The following test should trigger an error in the use of package
Ada.Dispatching.Non_Preemptive (not implemented) as shown:

pragma Task_Dispatching_Policy (Non_Preemptive_FIFO_Within_Priorities);

with Ada.Dispatching.Non_Preemptive;

procedure Non_Preemptive is
begin
   null;
end Non_Preemptive;

$ gcc -c non_preemptive.adb
Non_Preemptive is not supported in this configuration
compilation abandoned

Tested on x86_64-pc-linux-gnu, committed on trunk

2015-02-20  Jose Ruiz  <ruiz@adacore.com>

	* a-dinopr.ads: Add spec for this package (Unimplemented_Unit).
	* a-dispat.ads (Yield): Include procedure added in Ada 2012.
	* a-dispat.adb (Yield): Implement procedure added in Ada 2012.
	* impunit.adb (Non_Imp_File_Names_05): Mark unit a-dinopr.ads as
	defined by Ada 2005.
	* snames.ads-tmpl (Name_Non_Preemptive_FIFO_Within_Priorities):
	This is the correct name for the dispatching policy (FIFO was
	missing).

Attachment: difs
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]