home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / vol_300 / 362_01 / test8.c < prev    next >
C/C++ Source or Header  |  1991-12-11  |  2KB  |  49 lines

  1. /*****************************************************************************
  2.  *                    test8.c                     *
  3.  *****************************************************************************
  4.  * DESCRIPTION:    Verification routine for the RMAXTask multitasking system.   *
  5.  *                                         *
  6.  *        Tests semaphores.                         *
  7.  *                                         *
  8.  * REVISIONS:     3 JUL 90 - RAC - Original code                     *
  9.  *****************************************************************************/
  10.  
  11. #include    "\rmaxtask\source\rmaxtask.h"
  12. #include    <stdio.h>
  13. #include    <dos.h>
  14.  
  15. TDESC    *my_semaphore;
  16.  
  17. int    break_handler() {
  18.     stop_RMAXTask();                /* Do 'about to die' cleanup */
  19.     printf("\nCtrl-Break pressed.  Program terminated.\n");
  20.     return 0;                    /* This will abort program */
  21.     }                        /* End break_handler() */
  22.     
  23. void alpha() {
  24.     for (;;) {                    /* Repeat forever */
  25.     wait_sem(my_semaphore, 0);
  26.     printf("Alpha\n");            /* Print something */
  27.     }                        /* End 'repeat forever' */
  28.     }                        /* End alpha() */
  29.  
  30. void beta() {
  31.     for (;;) {                    /* Repeat forever */
  32.     wait_sem(my_semaphore, 0);
  33.     printf("Beta\n");            /* Print something */
  34.     }                        /* End 'repeat forever' */
  35.     }                        /* End alpha() */
  36.  
  37. void main() {
  38.  
  39.     start_RMAXTask();
  40.     ctrlbrk(break_handler);            /* Establish break handler */
  41.     my_semaphore = create_sem(5);
  42.     create_task("alpha", alpha, STANDARD_PRIORITY, STANDARD_STACK);
  43.     create_task("beta", beta,  STANDARD_PRIORITY, STANDARD_STACK);
  44.     for (;;) {
  45.     wait_key(0);
  46.     signal_sem(my_semaphore);
  47.     }    
  48.     }
  49.