Tested on hppa1.1.-hp-hpux10.20.  Commetted to trunk and 4.7.

Dave
-- 
J. David Anglin                                  dave.ang...@nrc-cnrc.gc.ca
National Research Council of Canada              (613) 990-0752 (FAX: 952-6602)

2012-12-01  John David Anglin  <dave.ang...@nrc-cnrc.gc.ca>

        PR ada/52110
        * s-osinte-hpux-dce.ads: Declare pthread_rwlockattr_t and
        pthread_rwlock_t subtypes.  Delete duplicate declaration of clockid_t.
        * s-taspri-hpux-dce.ads: Change "pragma Atomic (Thread)" to comment.

Index: s-osinte-hpux-dce.ads
===================================================================
--- s-osinte-hpux-dce.ads       (revision 193634)
+++ s-osinte-hpux-dce.ads       (working copy)
@@ -244,6 +244,14 @@
    type pthread_condattr_t  is limited private;
    type pthread_key_t       is private;
 
+   --  Read/Write lock not supported on HPUX. To add support both types
+   --  pthread_rwlock_t and pthread_rwlockattr_t must properly be defined
+   --  with the associated routines pthread_rwlock_[init/destroy] and
+   --  pthread_rwlock_[rdlock/wrlock/unlock].
+
+   subtype pthread_rwlock_t     is pthread_mutex_t;
+   subtype pthread_rwlockattr_t is pthread_mutexattr_t;
+
    -----------
    -- Stack --
    -----------
@@ -444,7 +452,6 @@
    end record;
    pragma Convention (C, timespec);
 
-   type clockid_t is new int;
    CLOCK_REALTIME : constant clockid_t := 1;
 
    type cma_t_address is new System.Address;
Index: s-taspri-hpux-dce.ads
===================================================================
--- s-taspri-hpux-dce.ads       (revision 193634)
+++ s-taspri-hpux-dce.ads       (working copy)
@@ -102,7 +102,9 @@
 
    type Private_Data is record
       Thread : aliased System.OS_Interface.pthread_t;
-      pragma Atomic (Thread);
+      --  pragma Atomic (Thread);
+      --  Unfortunately, the above fails because Thread is 64 bits.
+
       --  Thread field may be updated by two different threads of control.
       --  (See, Enter_Task and Create_Task in s-taprop.adb). They put the
       --  same value (thr_self value). We do not want to use lock on those

Reply via email to