[multiple changes]

2014-08-01  Robert Dewar  <dewar@adacore.com>

	* inline.adb, s-os_lib.ads: Minor reformatting.

2014-08-01  Arnaud Charlet  <charlet@adacore.com>

	* s-tasdeb.ads, s-tasdeb.adb (Master_Hook, Master_Completed_Hook): New.
	* s-tassta.adb (Task_Wrapper, Vulnerable_Complete_Master): Call new
	hooks.

From-SVN: r213444
This commit is contained in:
Arnaud Charlet 2014-08-01 12:08:23 +02:00
parent 39521a94f8
commit 3fe5ceadbb
6 changed files with 71 additions and 3 deletions

View File

@ -1,3 +1,13 @@
2014-08-01 Robert Dewar <dewar@adacore.com>
* inline.adb, s-os_lib.ads: Minor reformatting.
2014-08-01 Arnaud Charlet <charlet@adacore.com>
* s-tasdeb.ads, s-tasdeb.adb (Master_Hook, Master_Completed_Hook): New.
* s-tassta.adb (Task_Wrapper, Vulnerable_Complete_Master): Call new
hooks.
2014-08-01 Yannick Moy <moy@adacore.com>
* inline.adb (Cannot_Inline): Issue info message instead of

View File

@ -1239,10 +1239,14 @@ package body Inline is
and then Msg (Msg'First .. Msg'First + 12) = "cannot inline"
then
declare
Len1 : constant Positive := 13; -- length of "cannot inline"
Len1 : constant Positive := 13;
-- Length of "cannot inline"
Len2 : constant Positive := 31;
-- lenth of "info: no contextual analysis of"
-- Length of "info: no contextual analysis of"
New_Msg : String (1 .. Msg'Length + Len2 - Len1);
begin
New_Msg (1 .. Len2) := "info: no contextual analysis of";
New_Msg (Len2 + 1 .. Msg'Length + Len2 - Len1) :=

View File

@ -426,7 +426,9 @@ package System.OS_Lib is
-- to the current position (origin = SEEK_CUR), end of file (origin =
-- SEEK_END), or start of file (origin = SEEK_SET).
type Large_File_Size is range -2 ** 63 .. 2 ** 63 - 1;
type Large_File_Size is range -2**63 .. 2**63 - 1;
-- Maximum supported size for a file (8 exabytes = 8 million terabytes,
-- should be enough to accomodate all possible needs for quite a while).
function File_Length (FD : File_Descriptor) return Long_Integer;
pragma Import (C, File_Length, "__gnat_file_length_long");

View File

@ -437,4 +437,34 @@ package body System.Tasking.Debug is
(Fd, S'Address, System.CRTL.size_t (Count));
end Write;
-----------------
-- Master_Hook --
-----------------
procedure Master_Hook
(Dependent : Task_Id;
Parent : Task_Id;
Master_Level : Integer)
is
pragma Inspection_Point (Dependent);
pragma Inspection_Point (Parent);
pragma Inspection_Point (Master_Level);
begin
null;
end Master_Hook;
---------------------------
-- Master_Completed_Hook --
---------------------------
procedure Master_Completed_Hook
(Self_ID : Task_Id;
Master_Level : Integer)
is
pragma Inspection_Point (Self_ID);
pragma Inspection_Point (Master_Level);
begin
null;
end Master_Completed_Hook;
end System.Tasking.Debug;

View File

@ -145,4 +145,21 @@ package System.Tasking.Debug is
-- Enable or disable tracing for Flag. By default, flags in the range
-- 'A' .. 'Z' are disabled, others are enabled.
---------------------------------
-- Hooks for Valgrind/Helgrind --
---------------------------------
procedure Master_Hook
(Dependent : Task_Id;
Parent : Task_Id;
Master_Level : Integer);
-- Indicate to Valgrind/Helgrind that the master of Dependent
-- is Parent + Master_Level.
procedure Master_Completed_Hook
(Self_ID : Task_Id;
Master_Level : Integer);
-- Indicate to Valgrind/Helgrind that Self_ID has completed
-- the master Master_Level.
end System.Tasking.Debug;

View File

@ -1119,6 +1119,9 @@ package body System.Tasking.Stages is
begin
pragma Assert (Self_ID.Deferral_Level = 1);
Debug.Master_Hook
(Self_ID, Self_ID.Common.Parent, Self_ID.Master_of_Task);
-- Assume a size of the stack taken at this stage
if not Parameters.Sec_Stack_Dynamic then
@ -1985,6 +1988,8 @@ package body System.Tasking.Stages is
-- since the value is only updated by each task for itself.
Self_ID.Master_Within := CM - 1;
Debug.Master_Completed_Hook (Self_ID, CM);
end Vulnerable_Complete_Master;
------------------------------