[multiple changes]

2011-09-27  Pascal Obry  <obry@adacore.com>

	* s-osinte-hpux.ads, s-osinte-aix.ads, s-osinte-solaris-posix.ads,
	s-osinte-irix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads:
	Add dummy definitions for pthread_rwlock_t
	and pthread_rwlockattr_t on all POSIX platforms.
	* s-taprop-irix.adb, s-taprop-posix.adb (Initialize_Lock): Fix lock
	reference.
	(Finalize_Lock): Likewise.
	(Write_Lock): Likewise.
	(Unlock): Likewise.

2011-09-27  Tristan Gingold  <gingold@adacore.com>

	* s-tassta.adb (Task_Wrapper): Increase Guard_Page_Size value for
	windows 64.

From-SVN: r179254
This commit is contained in:
Arnaud Charlet 2011-09-27 11:48:14 +02:00
parent 64a63cd58b
commit 6f5add73cd
10 changed files with 74 additions and 9 deletions

View File

@ -1,3 +1,20 @@
2011-09-27 Pascal Obry <obry@adacore.com>
* s-osinte-hpux.ads, s-osinte-aix.ads, s-osinte-solaris-posix.ads,
s-osinte-irix.ads, s-osinte-darwin.ads, s-osinte-freebsd.ads:
Add dummy definitions for pthread_rwlock_t
and pthread_rwlockattr_t on all POSIX platforms.
* s-taprop-irix.adb, s-taprop-posix.adb (Initialize_Lock): Fix lock
reference.
(Finalize_Lock): Likewise.
(Write_Lock): Likewise.
(Unlock): Likewise.
2011-09-27 Tristan Gingold <gingold@adacore.com>
* s-tassta.adb (Task_Wrapper): Increase Guard_Page_Size value for
windows 64.
2011-09-27 Pascal Obry <obry@adacore.com>
* s-osinte-hpux.ads, s-taprop-vxworks.adb, s-taspri-vxworks.ads,

View File

@ -276,6 +276,14 @@ package System.OS_Interface is
PTHREAD_SCOPE_PROCESS : constant := 1;
PTHREAD_SCOPE_SYSTEM : constant := 0;
-- Read/Write lock not supported on AIX. 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 --
-----------

View File

@ -256,6 +256,14 @@ package System.OS_Interface is
PTHREAD_SCOPE_PROCESS : constant := 2;
PTHREAD_SCOPE_SYSTEM : constant := 1;
-- Read/Write lock not supported on Darwin. 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 --
-----------

View File

@ -289,6 +289,14 @@ package System.OS_Interface is
PTHREAD_SCOPE_PROCESS : constant := 0;
PTHREAD_SCOPE_SYSTEM : constant := 2;
-- Read/Write lock not supported on freebsd. 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 --
-----------

View File

@ -265,6 +265,14 @@ package System.OS_Interface is
PTHREAD_SCOPE_PROCESS : constant := 2;
PTHREAD_SCOPE_SYSTEM : constant := 1;
-- 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 --
-----------

View File

@ -250,6 +250,14 @@ package System.OS_Interface is
PTHREAD_CREATE_DETACHED : constant := 1;
-- Read/Write lock not supported on SGI. 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 --
-----------

View File

@ -255,6 +255,14 @@ package System.OS_Interface is
type pthread_condattr_t is limited private;
type pthread_key_t is private;
-- Read/Write lock not supported on Solaris. 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;
PTHREAD_CREATE_DETACHED : constant := 16#40#;
PTHREAD_SCOPE_PROCESS : constant := 0;

View File

@ -255,7 +255,7 @@ package body System.Task_Primitives.Operations is
pragma Assert (Result = 0);
end if;
Result := pthread_mutex_init (L, Attributes'Access);
Result := pthread_mutex_init (L.WO'Access, Attributes'Access);
pragma Assert (Result = 0 or else Result = ENOMEM);
if Result = ENOMEM then
@ -314,7 +314,7 @@ package body System.Task_Primitives.Operations is
procedure Finalize_Lock (L : not null access Lock) is
Result : Interfaces.C.int;
begin
Result := pthread_mutex_destroy (L);
Result := pthread_mutex_destroy (L.WO'Access);
pragma Assert (Result = 0);
end Finalize_Lock;
@ -335,7 +335,7 @@ package body System.Task_Primitives.Operations is
Result : Interfaces.C.int;
begin
Result := pthread_mutex_lock (L);
Result := pthread_mutex_lock (L.WO'Access);
Ceiling_Violation := Result = EINVAL;
-- Assumes the cause of EINVAL is a priority ceiling violation
@ -381,7 +381,7 @@ package body System.Task_Primitives.Operations is
procedure Unlock (L : not null access Lock) is
Result : Interfaces.C.int;
begin
Result := pthread_mutex_unlock (L);
Result := pthread_mutex_unlock (L.WO'Access);
pragma Assert (Result = 0);
end Unlock;

View File

@ -310,7 +310,7 @@ package body System.Task_Primitives.Operations is
pragma Assert (Result = 0);
end if;
Result := pthread_mutex_init (L, Attributes'Access);
Result := pthread_mutex_init (L.WO'Access, Attributes'Access);
pragma Assert (Result = 0 or else Result = ENOMEM);
if Result = ENOMEM then
@ -372,7 +372,7 @@ package body System.Task_Primitives.Operations is
procedure Finalize_Lock (L : not null access Lock) is
Result : Interfaces.C.int;
begin
Result := pthread_mutex_destroy (L);
Result := pthread_mutex_destroy (L.WO'Access);
pragma Assert (Result = 0);
end Finalize_Lock;
@ -393,7 +393,7 @@ package body System.Task_Primitives.Operations is
Result : Interfaces.C.int;
begin
Result := pthread_mutex_lock (L);
Result := pthread_mutex_lock (L.WO'Access);
-- Assume that the cause of EINVAL is a priority ceiling violation
@ -439,7 +439,7 @@ package body System.Task_Primitives.Operations is
procedure Unlock (L : not null access Lock) is
Result : Interfaces.C.int;
begin
Result := pthread_mutex_unlock (L);
Result := pthread_mutex_unlock (L.WO'Access);
pragma Assert (Result = 0);
end Unlock;

View File

@ -1164,7 +1164,7 @@ package body System.Tasking.Stages is
if System.Stack_Usage.Is_Enabled then
declare
Guard_Page_Size : constant := 12 * 1024;
Guard_Page_Size : constant := 16 * 1024;
-- Part of the stack used as a guard page. This is an OS dependent
-- value, so we need to use the maximum. This value is only used
-- when the stack address is known, that is currently Windows.