aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/5ztaprop.adb
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/5ztaprop.adb')
-rw-r--r--gcc/ada/5ztaprop.adb15
1 files changed, 11 insertions, 4 deletions
diff --git a/gcc/ada/5ztaprop.adb b/gcc/ada/5ztaprop.adb
index 2451e91dce5..6ee3f80fdcf 100644
--- a/gcc/ada/5ztaprop.adb
+++ b/gcc/ada/5ztaprop.adb
@@ -45,8 +45,8 @@ with System.Tasking.Debug;
with System.Interrupt_Management;
-- used for Keep_Unmasked
--- Abort_Task_Interrupt
--- Interrupt_ID
+-- Abort_Task_Signal
+-- Signal_ID
-- Initialize_Interrupts
with System.Soft_Links;
@@ -262,7 +262,7 @@ package body System.Task_Primitives.Operations is
Result :=
sigaction
- (Signal (Interrupt_Management.Abort_Task_Interrupt),
+ (Signal (Interrupt_Management.Abort_Task_Signal),
act'Unchecked_Access,
old_act'Unchecked_Access);
pragma Assert (Result = 0);
@@ -1008,7 +1008,7 @@ package body System.Task_Primitives.Operations is
begin
Result := kill (T.Common.LL.Thread,
- Signal (Interrupt_Management.Abort_Task_Interrupt));
+ Signal (Interrupt_Management.Abort_Task_Signal));
pragma Assert (Result = 0);
end Abort_Task;
@@ -1126,6 +1126,13 @@ package body System.Task_Primitives.Operations is
Result := sigemptyset (Unblocked_Signal_Mask'Access);
pragma Assert (Result = 0);
+ for J in Interrupt_Management.Signal_ID loop
+ if System.Interrupt_Management.Keep_Unmasked (J) then
+ Result := sigaddset (Unblocked_Signal_Mask'Access, Signal (J));
+ pragma Assert (Result = 0);
+ end if;
+ end loop;
+
Environment_Task_ID := Environment_Task;
-- Initialize the lock used to synchronize chain of all ATCBs.