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

操作系统开发

开发平台:

DOS

  1. /**************************************************************************/
  2. /* test3 - shows ksendmessage, kgetmessage async 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.     
  17.     do {
  18.         rt_yield();
  19.         x = rand();
  20.         if ( x > 25000 ) {
  21.             cprintf( " sending %u ", x );
  22.             ksendmessage( peer, x, 0 );
  23.             ksendmessage( peer, x, 0 );
  24.             ksendmessage( peer, x, 0 );
  25.         }
  26.     } while ( 1 );
  27. }
  28. void switcher2(DWORD arg)
  29. {
  30.     int x;
  31.     DWORD y;
  32.     do {
  33.         rt_yield();
  34.         if ( kgetmessage( &x, &y ) )
  35.             cprintf(" read %u rn", x );
  36.         else
  37.             cprintf(".");
  38.     } while ( 1 );
  39. }
  40. int main( int argc , char **argv )
  41. {
  42.     kdebug = 1;
  43.     rt_init(100);
  44.     cputs("starting...rn");
  45.     peer = rt_newthread( switcher2, 2,4096, 0, "worker" );
  46.     rt_newthread( switcher1, 1,4096, 0, "worker" );
  47.     rt_sleep( 10000 );
  48. }