home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / EFFO / pd6.lzh / TST / task_sieve.tst < prev    next >
Text File  |  1989-12-23  |  770b  |  45 lines

  1. .( Loading Multi-tasking Sieve benchmark...) cr
  2.  
  3. #include structures.f83
  4. #include multi_tasking.f83
  5.  
  6. structures multi-tasking forth definitions
  7.  
  8. ONE-TO-ONE CHAN parameter
  9.  
  10. 24 24 task.type FILTER ( -- )
  11.   ptr  previous
  12.   ptr  next
  13.   long prime
  14. task.body
  15.   parameter receive previous !
  16.   nil next !
  17.   parameter receive dup . prime !
  18.   begin
  19.     previous @ receive dup
  20.     prime @ mod
  21.     if next @ ?dup
  22.       if send
  23.       else
  24.        new FILTER drop
  25.        ONE-TO-ONE (structures) new CHAN dup next !
  26.        parameter send
  27.        parameter send
  28.       then
  29.     else
  30.       drop
  31.     then
  32.   again
  33. task.end
  34.  
  35. : task-sieve ( -- )
  36.   new FILTER drop
  37.   ONE-TO-ONE (structures) new CHAN dup parameter send
  38.   2 parameter send
  39.   8192 3 do
  40.     i over send
  41.   loop
  42.   drop ;
  43.  
  44. forth only
  45.