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

  1. /*****************************************************************************
  2.  *                    test5.c                     *
  3.  *****************************************************************************
  4.  * DESCRIPTION:    Verification routine for the RMAXTask multitasking system.   *
  5.  *                                         *
  6.  *        Simple mailbox check.  Happens to test queueing of message   *
  7.  *        at a mailbox.                             *
  8.  *                                         *
  9.  * REVISIONS:     3 JUL 90 - RAC - Original code                     *
  10.  *****************************************************************************/
  11.  
  12. #include    <dos.h>
  13. #include    <string.h>
  14. #include    <stdio.h>
  15. #include    <stdlib.h>
  16. #include    "\rmaxtask\source\rmaxtask.h"
  17.  
  18. TDESC    *my_mailbox;
  19.  
  20. int    break_handler() {
  21.     stop_RMAXTask();                /* Do 'about to die' cleanup */
  22.     printf("\nCtrl-Break pressed.  Program terminated.\n");
  23.     return 0;                    /* This will abort program */
  24.     }                        /* End break_handler() */
  25.  
  26. void printer() {
  27.  
  28.     char    message[50];
  29.     unsigned    size;
  30.     
  31.     for(;;) {
  32.     get_mail(message, &size, my_mailbox, 0, 0);
  33.     printf("Message: %s\n",   message);
  34.     printf("Size:    %d\n\n", size);
  35.     }    
  36.     }
  37.  
  38. void sender() {
  39.  
  40.     int        i;
  41.     char    message[50];
  42.  
  43.     send_mail("1", 1 + strlen("1"), my_mailbox);
  44.     send_mail("22", 1 + strlen("22"), my_mailbox);
  45.     send_mail("333", 1 + strlen("333"), my_mailbox);
  46.     send_mail("22", 1 + strlen("22"), my_mailbox);
  47.     send_mail("1", 1 + strlen("1"), my_mailbox);
  48.     for (i=1; i<10000; i *= 10) {
  49.     sprintf(message, "i = %d", i);
  50.     send_mail(message, 1 + strlen(message), my_mailbox);
  51.     }
  52.     yield();
  53.     stop_RMAXTask();                /*  a key is pressed */
  54.     exit(0);
  55.     }
  56.  
  57. void main() {
  58.  
  59.     int        i;                /* Generic temp */
  60.  
  61.     start_RMAXTask();
  62.     ctrlbrk(break_handler);            /* Establish break handler */
  63.     my_mailbox = create_mailbox();
  64.     create_task("sender", sender, STANDARD_PRIORITY, STANDARD_STACK);
  65.     create_task("printer", printer, STANDARD_PRIORITY, STANDARD_STACK);
  66.     wait_key(0);
  67.     }
  68.