TEST4.C
上传用户:sunrenlu
上传日期:2022-06-13
资源大小:1419k
文件大小:1k
源码类别:

操作系统开发

开发平台:

DOS

  1. /**************************************************************************/
  2. /* test4 - shows ksendmessage, kreadmessage sync messaging                */
  3. /**************************************************************************/
  4. #include "rtos.h"
  5. #include <stdio.h>
  6. #include <stdlib.h>
  7. void *peer = NULL;
  8. void switcher1(DWORD arg)
  9. {
  10.     int x;
  11. #if defined(__TURBOC__)||defined(__BORLANDC__)
  12.     randomize();
  13. #else
  14.     srand( time( 0 ));
  15. #endif
  16.     do {
  17.         rt_yield();
  18.         x = rand();
  19.         if ( x > 25000 ) {
  20.             cprintf( " sending %u ", x );
  21.             ksendmessage( peer, x, 0 );
  22.             ksendmessage( peer, x, 0 );
  23.             ksendmessage( peer, x, 0 );
  24.         }
  25.     } while ( 1 );
  26. }
  27. void switcher2(DWORD arg)
  28. {
  29.     int x;
  30.     DWORD y;
  31.     do {
  32.         rt_yield();
  33.         if ( kreadmessage( &x, &y ) )
  34.             cprintf(" read %u rn", x );
  35.         else
  36.             cprintf(".");
  37.     } while ( 1 );
  38. }
  39. int main(int argc, char **argv)
  40. {
  41.     kdebug = 1;
  42.     rt_init(100);
  43.     cputs("starting...rn");
  44.     peer = rt_newthread( switcher2, 2,4096, 0, "worker 2" );
  45.     rt_newthread( switcher1, 1,4096, 0, "worker 1" );
  46.     rt_sleep( 10000 );
  47. }