Commit 3b37ffbf by Jose Ruiz Committed by Arnaud Charlet

s-tposen.adb (Service_Entry): The object must be always unlocked at the end of…

s-tposen.adb (Service_Entry): The object must be always unlocked at the end of this procedure now that the...

2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>

	* s-tposen.adb (Service_Entry): The object must be always unlocked at
	the end of this procedure now that the unlock operation was inserted
	by the expander.

From-SVN: r88489
parent b23e28d5
2004-10-04 Jose Ruiz <ruiz@act-europe.fr> 2004-10-04 Jose Ruiz <ruiz@act-europe.fr>
* s-tposen.adb (Service_Entry): The object must be always unlocked at
the end of this procedure now that the unlock operation was inserted
by the expander.
2004-10-04 Jose Ruiz <ruiz@act-europe.fr>
* targparm.ads, targparm.adb (Targparm_Tags): Add PAS value * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
corresponding to the Preallocated_Stacks flags in System. corresponding to the Preallocated_Stacks flags in System.
(Get_Target_Parameters): Including the processing for (Get_Target_Parameters): Including the processing for
......
...@@ -579,13 +579,14 @@ package body System.Tasking.Protected_Objects.Single_Entry is ...@@ -579,13 +579,14 @@ package body System.Tasking.Protected_Objects.Single_Entry is
Caller : Task_Id; Caller : Task_Id;
begin begin
if Entry_Call /= null then if Entry_Call /= null
if Object.Entry_Body.Barrier (Object.Compiler_Info, 1) then and then Object.Entry_Body.Barrier (Object.Compiler_Info, 1)
then
Object.Entry_Queue := null; Object.Entry_Queue := null;
if Object.Call_In_Progress /= null then if Object.Call_In_Progress /= null then
-- This violates the No_Entry_Queue restriction, send
-- Program_Error to the caller. -- Violation of No_Entry_Queue restriction, raise exception
Send_Program_Error (Self_Id, Entry_Call); Send_Program_Error (Self_Id, Entry_Call);
Unlock_Entry (Object); Unlock_Entry (Object);
...@@ -610,7 +611,11 @@ package body System.Tasking.Protected_Objects.Single_Entry is ...@@ -610,7 +611,11 @@ package body System.Tasking.Protected_Objects.Single_Entry is
if Single_Lock then if Single_Lock then
STPO.Unlock_RTS; STPO.Unlock_RTS;
end if; end if;
end if;
else
-- Just unlock the entry
Unlock_Entry (Object);
end if; end if;
exception exception
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment