]> gcc.gnu.org Git - gcc.git/blame - gcc/ada/7stpopsp.adb
3psoccon.ads, [...]: Files added.
[gcc.git] / gcc / ada / 7stpopsp.adb
CommitLineData
84481f76
RK
1------------------------------------------------------------------------------
2-- --
3-- GNU ADA RUN-TIME LIBRARY (GNARL) COMPONENTS --
4-- --
07fc65c4 5-- SYSTEM.TASK_PRIMITIVES.OPERATIONS.SPECIFIC --
84481f76
RK
6-- --
7-- B o d y --
8-- --
fbf5a39b 9-- Copyright (C) 1992-2002, Free Software Fundation, Inc. --
84481f76
RK
10-- --
11-- GNARL is free software; you can redistribute it and/or modify it under --
12-- terms of the GNU General Public License as published by the Free Soft- --
13-- ware Foundation; either version 2, or (at your option) any later ver- --
14-- sion. GNARL is distributed in the hope that it will be useful, but WITH- --
15-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
16-- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
17-- for more details. You should have received a copy of the GNU General --
18-- Public License distributed with GNARL; see file COPYING. If not, write --
19-- to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, --
20-- MA 02111-1307, USA. --
21-- --
22-- As a special exception, if other files instantiate generics from this --
23-- unit, or you link this unit with other files to produce an executable, --
24-- this unit does not by itself cause the resulting executable to be --
25-- covered by the GNU General Public License. This exception does not --
26-- however invalidate any other reasons why the executable file might be --
27-- covered by the GNU Public License. --
28-- --
fbf5a39b
AC
29-- GNARL was developed by the GNARL team at Florida State University. --
30-- Extensive contributions were provided by Ada Core Technologies, Inc. --
84481f76
RK
31-- --
32------------------------------------------------------------------------------
33
fbf5a39b 34-- This is a POSIX-like version of this package.
84481f76
RK
35
36separate (System.Task_Primitives.Operations)
37package body Specific is
38
84481f76
RK
39 ----------------
40 -- Initialize --
41 ----------------
42
43 procedure Initialize (Environment_Task : Task_ID) is
fbf5a39b 44 pragma Warnings (Off, Environment_Task);
84481f76 45 Result : Interfaces.C.int;
fbf5a39b 46
84481f76
RK
47 begin
48 Result := pthread_key_create (ATCB_Key'Access, null);
49 pragma Assert (Result = 0);
84481f76
RK
50 end Initialize;
51
fbf5a39b
AC
52 -------------------
53 -- Is_Valid_Task --
54 -------------------
55
56 function Is_Valid_Task return Boolean is
57 begin
58 return pthread_getspecific (ATCB_Key) /= System.Null_Address;
59 end Is_Valid_Task;
60
84481f76
RK
61 ---------
62 -- Set --
63 ---------
64
65 procedure Set (Self_Id : Task_ID) is
07fc65c4 66 Result : Interfaces.C.int;
84481f76
RK
67
68 begin
69 Result := pthread_setspecific (ATCB_Key, To_Address (Self_Id));
70 pragma Assert (Result = 0);
71 end Set;
72
73 ----------
74 -- Self --
75 ----------
76
77 function Self return Task_ID is
84481f76
RK
78
79 begin
fbf5a39b 80 return To_Task_Id (pthread_getspecific (ATCB_Key));
84481f76
RK
81 end Self;
82
83end Specific;
This page took 0.868379 seconds and 5 git commands to generate.