s-parame-mingw.adb (Default_Stack_Size): Add some comments.
authorPascal Obry <obry@gnat.com>
Wed, 27 Oct 2004 12:28:25 +0000 (14:28 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Wed, 27 Oct 2004 12:28:25 +0000 (14:28 +0200)
2004-10-26  Pascal Obry  <obry@gnat.com>

* s-parame-mingw.adb (Default_Stack_Size): Add some comments.

* s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
Windows only the initial thread stack size can be set so it is good to
start we a low stack size.
The OS will adjust the size as needed.

From-SVN: r89641

gcc/ada/s-parame-mingw.adb
gcc/ada/s-taprop-mingw.adb

index d77ebdb..88d660f 100644 (file)
@@ -56,6 +56,12 @@ package body System.Parameters is
    -- Default_Stack_Size --
    ------------------------
 
+   --  Note that on Windows this is not really the default stack size. It
+   --  is the default used for the stack checking support but there is no
+   --  way to set the thread stack size at runtime. Only the initial thread
+   --  stack size can be specified. The real stack size limit is set at
+   --  link time. See GNU/Linker --stack=x,y option.
+
    function Default_Stack_Size return Size_Type is
    begin
       return 20 * 1024;
index 5656661..e85d903 100644 (file)
@@ -843,6 +843,13 @@ package body System.Task_Primitives.Operations is
       Priority   : System.Any_Priority;
       Succeeded  : out Boolean)
    is
+      pragma Unreferenced (Stack_Size);
+
+      Initial_Stack_Size : constant := 1024;
+      --  We set the initial stack size to 1024. On Windows there is no way to
+      --  fix a task stack size. Only the initial stack size can be set, the
+      --  operating system will raise the task stack size if needed.
+
       hTask          : HANDLE;
       TaskId         : aliased DWORD;
       pTaskParameter : System.OS_Interface.PVOID;
@@ -856,7 +863,7 @@ package body System.Task_Primitives.Operations is
 
       hTask := CreateThread
          (null,
-          DWORD (Adjust_Storage_Size (Stack_Size)),
+          Initial_Stack_Size,
           Entry_Point,
           pTaskParameter,
           DWORD (Create_Suspended),