diff packages/compat/posix/current/src/pthread.cxx @ 162:2395031e7a66

Merge from eCos master repository on 2001-06-15-06:43:03-BST
author jlarmour
date Fri, 15 Jun 2001 22:45:04 +0000
parents f935b880e96c
children 4c750ce71ae3
line wrap: on
line diff
--- a/packages/compat/posix/current/src/pthread.cxx
+++ b/packages/compat/posix/current/src/pthread.cxx
@@ -156,7 +156,11 @@ static pthread_t thread_id_cookie = THRE
 //-----------------------------------------------------------------------------
 // Main thread.
 
-static char main_stack[CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE];
+#define MAIN_DEFAULT_STACK_SIZE \
+  (CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE < PTHREAD_STACK_MIN \
+              ? PTHREAD_STACK_MIN : CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE)
+
+static char main_stack[MAIN_DEFAULT_STACK_SIZE];
 
 // Thread ID of main thread.
 static pthread_t main_thread;
@@ -412,8 +416,8 @@ externC void cyg_posix_pthread_start( vo
 
     pthread_attr_init( &attr );
     pthread_attr_setinheritsched( &attr, PTHREAD_EXPLICIT_SCHED );
-    pthread_attr_setstackaddr( &attr, &main_stack[CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE] );
-    pthread_attr_setstacksize( &attr, CYGNUM_LIBC_MAIN_DEFAULT_STACK_SIZE );
+    pthread_attr_setstackaddr( &attr, &main_stack[sizeof(main_stack)] );
+    pthread_attr_setstacksize( &attr, sizeof(main_stack) );
     pthread_attr_setschedpolicy( &attr, SCHED_RR );
     pthread_attr_setschedparam( &attr, &schedparam );
     
@@ -1177,7 +1181,7 @@ externC int pthread_attr_setstacksize (p
     
     PTHREAD_CHECK(attr);
 
-    CYG_ASSERT( stacksize > PTHREAD_STACK_MIN, "Inadequate stack size supplied");
+    CYG_ASSERT( stacksize >= PTHREAD_STACK_MIN, "Inadequate stack size supplied");
     
     // Reject inadequate stack sizes
     if( stacksize < PTHREAD_STACK_MIN )