Changeset 11944b9b in rtems


Ignore:
Timestamp:
Jan 13, 2000, 7:32:50 PM (21 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.8, 4.9, 5, master
Children:
b8c9883
Parents:
3e7a0fd
Message:

POSIX message queues now include complete functionality including
blocking sends when the queue is full. The SuperCore? was enhanced
to support blocking on send. The existing POSIX API was debugged
and numerous test cases were added to psxmsgq01 by Jennifer Averett.
SuperCore? enhancements and resulting modifications to other APIs
were done by Joel.

There is one significant point of interpretation for the POSIX API.
What happens to threads already blocked on a message queue when the
mode of that same message queue is changed from blocking to non-blocking?
We decided to unblock all waiting tasks with an EAGAIN error just
as if a non-blocking version of the same operation had returned
unsatisfied. This case is not discussed in the POSIX standard and
other implementations may have chosen differently.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • c/src/tests/psxtests/psxmsgq01/system.h

    r3e7a0fd r11944b9b  
    3939#define CONFIGURE_POSIX_INIT_THREAD_TABLE
    4040
    41 #define CONFIGURE_MAXIMUM_POSIX_THREADS          2
     41#define CONFIGURE_MAXIMUM_POSIX_THREADS          5
    4242#define CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES   10
     43#define CONFIGURE_MAXIMUM_POSIX_TIMERS      4
     44#define CONFIGURE_MAXIMUM_TIMERS            4
    4345
    4446#define CONFIGURE_POSIX_INIT_THREAD_TABLE
    4547#define CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE \
    46         (RTEMS_MINIMUM_STACK_SIZE * 4)
     48        (RTEMS_MINIMUM_STACK_SIZE * 10)
    4749
    4850#include <confdefs.h>
     
    5355TEST_EXTERN pthread_t        Task_id;
    5456
     57#define MSGSIZE   9
     58#define MAXMSG    4
     59
     60typedef enum {
     61  RD_QUEUE,   /* Read only queue               */
     62  WR_QUEUE,   /* Write only queue              */
     63  RW_QUEUE,   /* Read Write non-blocking queue */
     64  BLOCKING,   /* Read Write blocking queue     */
     65  DEFAULT_RW, /* default must be last          */
     66  CLOSED,     /* Created and closed queue      */
     67  NUMBER_OF_TEST_QUEUES
     68} Test_Queue_Types;
     69extern int Priority_Order[MAXMSG+1];
     70void *Task_1 ( void *argument );
     71void *Task_2( void *argument );
     72void *Task_3( void *argument );
     73void *Task_4( void *argument );
     74
    5575/* end of include file */
    5676
  • testsuites/psxtests/psxmsgq01/system.h

    r3e7a0fd r11944b9b  
    3939#define CONFIGURE_POSIX_INIT_THREAD_TABLE
    4040
    41 #define CONFIGURE_MAXIMUM_POSIX_THREADS          2
     41#define CONFIGURE_MAXIMUM_POSIX_THREADS          5
    4242#define CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES   10
     43#define CONFIGURE_MAXIMUM_POSIX_TIMERS      4
     44#define CONFIGURE_MAXIMUM_TIMERS            4
    4345
    4446#define CONFIGURE_POSIX_INIT_THREAD_TABLE
    4547#define CONFIGURE_POSIX_INIT_THREAD_STACK_SIZE \
    46         (RTEMS_MINIMUM_STACK_SIZE * 4)
     48        (RTEMS_MINIMUM_STACK_SIZE * 10)
    4749
    4850#include <confdefs.h>
     
    5355TEST_EXTERN pthread_t        Task_id;
    5456
     57#define MSGSIZE   9
     58#define MAXMSG    4
     59
     60typedef enum {
     61  RD_QUEUE,   /* Read only queue               */
     62  WR_QUEUE,   /* Write only queue              */
     63  RW_QUEUE,   /* Read Write non-blocking queue */
     64  BLOCKING,   /* Read Write blocking queue     */
     65  DEFAULT_RW, /* default must be last          */
     66  CLOSED,     /* Created and closed queue      */
     67  NUMBER_OF_TEST_QUEUES
     68} Test_Queue_Types;
     69extern int Priority_Order[MAXMSG+1];
     70void *Task_1 ( void *argument );
     71void *Task_2( void *argument );
     72void *Task_3( void *argument );
     73void *Task_4( void *argument );
     74
    5575/* end of include file */
    5676
Note: See TracChangeset for help on using the changeset viewer.