diff options
author | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-10-24 09:19:15 +0000 |
---|---|---|
committer | charlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-10-24 09:19:15 +0000 |
commit | 84c0d8e8d58c14a8d5d95335a591bc4b3c03ef97 (patch) | |
tree | d89cf897a9a425f8c25bed513a2012ba82a689ae /gcc/ada/s-finmas.ads | |
parent | 5ea0545e19c96fbc5f98630f9f9eea934201206d (diff) | |
download | gcc-84c0d8e8d58c14a8d5d95335a591bc4b3c03ef97.tar.gz |
2011-10-24 Sergey Rybin <rybin@adacore.com frybin>
* gnat_ugn.texi: For gnatelim, move the note about using the GNAT
driver for getting the project support into gnatelim section.
2011-10-24 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Minor correction to documentation on address
clause.
2011-10-24 Hristian Kirtchev <kirtchev@adacore.com>
* s-finmas.adb (Attach): Synchronize and call the unprotected version.
(Attach_Unprotected): New routine.
(Delete_Finalize_Address): Removed.
(Delete_Finalize_Address_Unprotected): New routine.
(Detach): Synchronize and call the unprotected version.
(Detach_Unprotected): Remove locking.
(Finalize): Add various comment on synchronization. Lock the critical
region and call the unprotected versions of routines.
(Finalize_Address): Removed.
(Finalize_Address_Unprotected): New routine.
(Set_Finalize_Address): Synchronize and call
the unprotected version.
(Set_Finalize_Address_Unprotected): New routine.
(Set_Heterogeneous_Finalize_Address): Removed.
(Set_Heterogeneous_Finalize_Address_Unprotected): New routine.
(Set_Is_Heterogeneous): Add comment on synchronization and
locking.
* s-finmas.ads: Flag Finalization_Started is no longer atomic
because synchronization uses task locking / unlocking.
(Attach): Add comment on usage.
(Attach_Unprotected): New routine.
(Delete_Finalize_Address): Renamed to
Delete_Finalize_Address_Unprotected.
(Detach): Add comment on usage.
(Detach_Unprotected): New routine.
(Finalize_Address): Renamed to Finalize_Address_Unprotected.
(Set_Finalize_Address): Add comment on usage.
(Set_Finalize_Address_Unprotected): New routine.
(Set_Heterogeneous_Finalize_Address): Renamed to
Set_Heterogeneous_Finalize_Address_Unprotected.
* s-stposu.adb (Allocate_Any_Controlled): Add local variable
Allocation_Locked. Add various comments on synchronization. Lock
the critical region and call the unprotected version of
routines.
(Deallocate_Any_Controlled): Add various comments on
synchronization. Lock the critical region and call the unprotected
version of routines.
2011-10-24 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Set_Fixed_Range): The bounds of a fixed point type
are universal and must carry the corresponding type.
* sem_eval.adb (Check_Non_Static_Context): If the type of the
expression is universal real, as may be the case for a fixed point
expression with constant operands in the context of a conversion,
there is nothing to check.
* s-finmas.adb: Minor reformatting
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@180368 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/s-finmas.ads')
-rw-r--r-- | gcc/ada/s-finmas.ads | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/gcc/ada/s-finmas.ads b/gcc/ada/s-finmas.ads index bb9ff5bdc3c..f0dd5b8767e 100644 --- a/gcc/ada/s-finmas.ads +++ b/gcc/ada/s-finmas.ads @@ -74,13 +74,23 @@ package System.Finalization_Masters is for Finalization_Master_Ptr'Storage_Size use 0; procedure Attach (N : not null FM_Node_Ptr; L : not null FM_Node_Ptr); + -- Compiler interface, do not call from withing the run-time. Prepend a + -- node to a specific finalization master. + + procedure Attach_Unprotected + (N : not null FM_Node_Ptr; + L : not null FM_Node_Ptr); -- Prepend a node to a specific finalization master - procedure Delete_Finalize_Address (Obj : System.Address); + procedure Delete_Finalize_Address_Unprotected (Obj : System.Address); -- Destroy the relation pair object - Finalize_Address from the internal -- hash table. procedure Detach (N : not null FM_Node_Ptr); + -- Compiler interface, do not call from within the run-time. Remove a node + -- from an arbitrary finalization master. + + procedure Detach_Unprotected (N : not null FM_Node_Ptr); -- Remove a node from an arbitrary finalization master overriding procedure Finalize (Master : in out Finalization_Master); @@ -93,7 +103,7 @@ package System.Finalization_Masters is -- Return a reference to the TSS primitive Finalize_Address associated with -- a master. - function Finalize_Address + function Finalize_Address_Unprotected (Obj : System.Address) return Finalize_Address_Ptr; -- Retrieve the Finalize_Address primitive associated with a particular -- object. @@ -119,9 +129,15 @@ package System.Finalization_Masters is procedure Set_Finalize_Address (Master : in out Finalization_Master; Fin_Addr_Ptr : Finalize_Address_Ptr); + -- Compiler interface, do not call from within the run-time. Set the clean + -- up routine of a finalization master + + procedure Set_Finalize_Address_Unprotected + (Master : in out Finalization_Master; + Fin_Addr_Ptr : Finalize_Address_Ptr); -- Set the clean up routine of a finalization master - procedure Set_Heterogeneous_Finalize_Address + procedure Set_Heterogeneous_Finalize_Address_Unprotected (Obj : System.Address; Fin_Addr_Ptr : Finalize_Address_Ptr); -- Add a relation pair object - Finalize_Address to the internal hash @@ -165,11 +181,9 @@ private -- is used only when the master is in homogeneous mode. Finalization_Started : Boolean := False; - pragma Atomic (Finalization_Started); -- A flag used to detect allocations which occur during the finalization -- of a master. The allocations must raise Program_Error. This scenario - -- may arise in a multitask environment. The flag is atomic because it - -- is accessed without Lock_Task / Unlock_Task. + -- may arise in a multitask environment. end record; -- Since RTSfind cannot contain names of the form RE_"+", the following |