Changeset 0b710dbb in rtems


Ignore:
Timestamp:
Aug 23, 1996, 2:47:58 PM (25 years ago)
Author:
Mark Johannes <Mark.Johannes@…>
Branches:
4.10, 4.11, 4.8, 4.9, 5, master
Children:
257adba
Parents:
df70c6b
Message:

pthread_create: changed EINVAL for no more threads back to EAGAIN

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • c/src/exec/posix/src/pthread.c

    rdf70c6b r0b710dbb  
    2121#include <rtems/posix/time.h>
    2222
     23#define PTHREAD_MINIMUM_STACK_SIZE (STACK_MINIMUM_SIZE * 2)
    2324/*PAGE
    2425 *
     
    2728 
    2829const pthread_attr_t _POSIX_Threads_Default_attributes = {
    29   TRUE,                    /* is_initialized */
    30   NULL,                    /* stackaddr */
    31   STACK_MINIMUM_SIZE * 2, /* stacksize */
    32   PTHREAD_SCOPE_PROCESS,   /* contentionscope */
    33   PTHREAD_EXPLICIT_SCHED,  /* inheritsched */
    34   SCHED_FIFO,              /* schedpolicy */
    35   {                        /* schedparam */
    36     128,                   /* sched_priority */
    37     0,                     /* ss_low_priority */
    38     { 0L, 0 },             /* ss_replenish_period */
    39     { 0L, 0 }              /* ss_initial_budget */
     30  TRUE,                       /* is_initialized */
     31  NULL,                       /* stackaddr */
     32  PTHREAD_MINIMUM_STACK_SIZE, /* stacksize */
     33  PTHREAD_SCOPE_PROCESS,      /* contentionscope */
     34  PTHREAD_EXPLICIT_SCHED,     /* inheritsched */
     35  SCHED_FIFO,                 /* schedpolicy */
     36  {                           /* schedparam */
     37    2,                        /* sched_priority */
     38    0,                        /* ss_low_priority */
     39    { 0L, 0 },                /* ss_replenish_period */
     40    { 0L, 0 }                 /* ss_initial_budget */
    4041  },
    41   PTHREAD_CREATE_JOINABLE, /* detachstate */
    42   1                        /* cputime_clock_allowed */
     42  PTHREAD_CREATE_JOINABLE,    /* detachstate */
     43  1                           /* cputime_clock_allowed */
    4344};
    4445
     
    631632          the_thread->cpu_time_budget = _Thread_Ticks_per_timeslice;
    632633
    633           _Thread_Change_priority(
    634             the_thread,
    635             _POSIX_Priority_To_core( api->schedparam.sched_priority )
    636           );
     634          the_thread->real_priority =
     635            _POSIX_Priority_To_core( api->schedparam.sched_priority );
     636
     637          _Thread_Change_priority( the_thread, the_thread->real_priority );
    637638          break;
    638639 
     
    711712    return EINVAL;
    712713
    713   if (stacksize < STACK_MINIMUM_SIZE)
    714     attr->stacksize = STACK_MINIMUM_SIZE;
     714  if (stacksize < PTHREAD_MINIMUM_STACK_SIZE)
     715    attr->stacksize = PTHREAD_MINIMUM_STACK_SIZE;
    715716  else
    716717    attr->stacksize = stacksize;
     
    937938  if ( !the_thread ) {
    938939    _Thread_Enable_dispatch();
    939     return EINVAL;
     940    return EAGAIN;
    940941  }
    941942
  • cpukit/posix/src/pthread.c

    rdf70c6b r0b710dbb  
    2121#include <rtems/posix/time.h>
    2222
     23#define PTHREAD_MINIMUM_STACK_SIZE (STACK_MINIMUM_SIZE * 2)
    2324/*PAGE
    2425 *
     
    2728 
    2829const pthread_attr_t _POSIX_Threads_Default_attributes = {
    29   TRUE,                    /* is_initialized */
    30   NULL,                    /* stackaddr */
    31   STACK_MINIMUM_SIZE * 2, /* stacksize */
    32   PTHREAD_SCOPE_PROCESS,   /* contentionscope */
    33   PTHREAD_EXPLICIT_SCHED,  /* inheritsched */
    34   SCHED_FIFO,              /* schedpolicy */
    35   {                        /* schedparam */
    36     128,                   /* sched_priority */
    37     0,                     /* ss_low_priority */
    38     { 0L, 0 },             /* ss_replenish_period */
    39     { 0L, 0 }              /* ss_initial_budget */
     30  TRUE,                       /* is_initialized */
     31  NULL,                       /* stackaddr */
     32  PTHREAD_MINIMUM_STACK_SIZE, /* stacksize */
     33  PTHREAD_SCOPE_PROCESS,      /* contentionscope */
     34  PTHREAD_EXPLICIT_SCHED,     /* inheritsched */
     35  SCHED_FIFO,                 /* schedpolicy */
     36  {                           /* schedparam */
     37    2,                        /* sched_priority */
     38    0,                        /* ss_low_priority */
     39    { 0L, 0 },                /* ss_replenish_period */
     40    { 0L, 0 }                 /* ss_initial_budget */
    4041  },
    41   PTHREAD_CREATE_JOINABLE, /* detachstate */
    42   1                        /* cputime_clock_allowed */
     42  PTHREAD_CREATE_JOINABLE,    /* detachstate */
     43  1                           /* cputime_clock_allowed */
    4344};
    4445
     
    631632          the_thread->cpu_time_budget = _Thread_Ticks_per_timeslice;
    632633
    633           _Thread_Change_priority(
    634             the_thread,
    635             _POSIX_Priority_To_core( api->schedparam.sched_priority )
    636           );
     634          the_thread->real_priority =
     635            _POSIX_Priority_To_core( api->schedparam.sched_priority );
     636
     637          _Thread_Change_priority( the_thread, the_thread->real_priority );
    637638          break;
    638639 
     
    711712    return EINVAL;
    712713
    713   if (stacksize < STACK_MINIMUM_SIZE)
    714     attr->stacksize = STACK_MINIMUM_SIZE;
     714  if (stacksize < PTHREAD_MINIMUM_STACK_SIZE)
     715    attr->stacksize = PTHREAD_MINIMUM_STACK_SIZE;
    715716  else
    716717    attr->stacksize = stacksize;
     
    937938  if ( !the_thread ) {
    938939    _Thread_Enable_dispatch();
    939     return EINVAL;
     940    return EAGAIN;
    940941  }
    941942
Note: See TracChangeset for help on using the changeset viewer.