summaryrefslogtreecommitdiff
path: root/gcc/ada/s-intman.ads
diff options
context:
space:
mode:
authorJose Ruiz <ruiz@adacore.com>2005-06-16 10:28:24 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2005-06-16 10:28:24 +0200
commitb497b46043b4679353aecf4be76266686813bdf3 (patch)
tree4fb352539eb2da55b0cd66a4286daa9a48c396d2 /gcc/ada/s-intman.ads
parent3084fecdb96ba949ce9188b6356121c911cdff76 (diff)
downloadgcc-b497b46043b4679353aecf4be76266686813bdf3.tar.gz
a-sytaco.ads, [...] (Suspension_Object): These objects are no longer protected objects.
2005-06-14 Jose Ruiz <ruiz@adacore.com> Arnaud Charlet <charlet@adacore.com> * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no longer protected objects. They have been replaced by lower-level suspension objects made up by a mutex and a condition variable (or their equivalent given a particular OS) plus some internal data to reflect the state of the suspension object. (Initialize, Finalize): Add this initialization procedure for Suspension_Object, which is a controlled type. (Finalize): Add the finalization procedure for Suspension_Object, which is a controlled type. * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of Ada.Synchronous_Task_Control because there is no longer a need for a VxWorks specific version of this package. Target dependencies has been moved to System.Task_Primitives.Operations. * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no longer needed. (InitializeCriticalSection, EnterCriticalSection, LeaveCriticalSection, DeleteCriticalSection): Replace the type pCriticalSection by an anonymous access type so that we avoid problems of accessibility to local objects. * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb, s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb, s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer set the environment task mask here. (Current_State): Add this function that returns the state of the suspension object. (Set_False): Add this procedure that sets the state of the suspension object to False. (Set_True): Add this procedure that sets the state of the suspension object to True, releasing the task that was suspended, if any. (Suspend_Until_True): Add this procedure that blocks the calling task until the state of the object is True. Program_Error is raised if another task is already waiting on that suspension object. (Initialize): Add this procedure for initializing the suspension object. It initializes the mutex and the condition variable which are used for synchronization and queuing, and it sets the internal state to False. (Finalize): Add this procedure for finalizing the suspension object, destroying the mutex and the condition variable. * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads, s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads, s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object which provides a low-level abstraction (using operating system primitives) for Ada.Synchronous_Task_Control. This object is made up by a mutex (for ensuring mutual exclusion), a condition variable (for queuing threads until the condition is signaled), a Boolean (State) indicating whether the object is open, and a Boolean (Waiting) reflecting whether there is a task already suspended on this object. * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb, s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads, s-intman-mingw.adb, (Initialize_Interrupts): Removed, no longer used. * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb, (Setup_Interrupt_Mask): New procedure. * s-intman-vxworks.ads, s-intman-vxworks.adb: Update comments. * s-inmaop.ads (Setup_Interrupt_Mask): New procedure * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that this is no longer done in the body of s-taprop (Server_Task): Explicitely test for Pending_Action in case System.Parameters.No_Abort is True. * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this is no longer done in the body of s-taprop From-SVN: r101015
Diffstat (limited to 'gcc/ada/s-intman.ads')
-rw-r--r--gcc/ada/s-intman.ads8
1 files changed, 1 insertions, 7 deletions
diff --git a/gcc/ada/s-intman.ads b/gcc/ada/s-intman.ads
index c8d2a0e2d3c..9cb3296eb9e 100644
--- a/gcc/ada/s-intman.ads
+++ b/gcc/ada/s-intman.ads
@@ -1,6 +1,6 @@
------------------------------------------------------------------------------
-- --
--- GNU ADA RUN-TIME LIBRARY (GNARL) COMPONENTS --
+-- GNAT RUN-TIME LIBRARY (GNARL) COMPONENTS --
-- --
-- S Y S T E M . I N T E R R U P T _ M A N A G E M E N T --
-- --
@@ -103,12 +103,6 @@ package System.Interrupt_Management is
-- example, it may be mapped to an exception used to implement task abort,
-- or used to implement time delays.
- procedure Initialize_Interrupts;
- -- On systems where there is no signal inheritance between tasks (e.g
- -- VxWorks, GNU/LinuxThreads), this procedure is used to initialize
- -- interrupts handling in each task. Otherwise this function should only
- -- be called by initialize in this package body.
-
private
type Interrupt_Mask is new System.OS_Interface.sigset_t;
-- In some implementations Interrupt_Mask can be represented as a linked