summaryrefslogtreecommitdiff
path: root/gcc/ada/s-tposen.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2004-02-25 15:59:05 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2004-02-25 15:59:05 +0000
commit632a89954bc74fcf3cbc4cd34d04da14093ea3a8 (patch)
tree55546168634e1653e8e637a0b8c0f34c3ccdada9 /gcc/ada/s-tposen.adb
parentfd11b6022fadd0ed9993f7bd3a8c8858f2be1ddd (diff)
downloadgcc-632a89954bc74fcf3cbc4cd34d04da14093ea3a8.tar.gz
2004-02-25 Robert Dewar <dewar@gnat.com>
* 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads, 5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads, 5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads, 5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to the defining instance of the type to avoid aliasing problems. Fix copyright header. Fix bad comments in package header. * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting 2004-02-25 Ed Schonberg <schonberg@gnat.com> * exp_ch2.adb (Param_Entity): Handle properly formals that have been rewritten as references when aliased through an address clause. * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking whether call can be interpreted as an indirect call to the result of a parameterless function call returning an access subprogram. 2004-02-25 Arnaud Charlet <charlet@act-europe.fr> Code clean up: * exp_ch7.adb (Make_Clean): Remove generation of calls to Unlock[_Entries], since this is now done by Service_Entries directly. * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto. * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure Requeue_Call for better code readability. Change spec and update calls: PO_Service_Entries now unlock the PO on exit. (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to PO_Service_Entries. * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit. * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries. 2004-02-25 Sergey Rybin <rybin@act-europe.fr> * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the protected subprogram call and analyzing the result of such expanding in case when the called protected subprogram is eliminated. * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope names. 2004-02-25 Jerome Guitton <guitton@act-europe.fr> * Makefile.in: Clean ups. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@78436 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/s-tposen.adb')
-rw-r--r--gcc/ada/s-tposen.adb7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/ada/s-tposen.adb b/gcc/ada/s-tposen.adb
index 3eaec425e91..b1a3ef29a4b 100644
--- a/gcc/ada/s-tposen.adb
+++ b/gcc/ada/s-tposen.adb
@@ -6,7 +6,7 @@
-- --
-- B o d y --
-- --
--- Copyright (C) 1998-2002, Free Software Foundation, Inc. --
+-- Copyright (C) 1998-2004, Free Software Foundation, Inc. --
-- --
-- GNARL is free software; you can redistribute it and/or modify it under --
-- terms of the GNU General Public License as published by the Free Soft- --
@@ -52,7 +52,7 @@ pragma Style_Checks (All_Checks);
-- mentioned above are respected, except for the No_Entry_Queue restriction
-- that is checked dynamically in this package, since the check cannot be
-- performed at compile time, and is relatively cheap (see PO_Do_Or_Queue,
--- PO_Service_Entry).
+-- Service_Entry).
pragma Polling (Off);
-- Turn off polling, we do not want polling to take place during tasking
@@ -530,6 +530,7 @@ package body System.Tasking.Protected_Objects.Single_Entry is
-- Program_Error to the caller.
Send_Program_Error (Self_Id, Entry_Call);
+ Unlock_Entry (Object);
return;
end if;
@@ -538,6 +539,7 @@ package body System.Tasking.Protected_Objects.Single_Entry is
(Object.Compiler_Info, Entry_Call.Uninterpreted_Data, 1);
Object.Call_In_Progress := null;
Caller := Entry_Call.Self;
+ Unlock_Entry (Object);
if Single_Lock then
STPO.Lock_RTS;
@@ -556,6 +558,7 @@ package body System.Tasking.Protected_Objects.Single_Entry is
exception
when others =>
Send_Program_Error (Self_Id, Entry_Call);
+ Unlock_Entry (Object);
end Service_Entry;
---------------------------------------