Changes in src/tests/boundedBuffer.c [6c7b1e7:4cedd9f]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/tests/boundedBuffer.c
r6c7b1e7 r4cedd9f 1 // 1 // 2 2 // The contents of this file are covered under the licence agreement in the 3 3 // file "LICENCE" distributed with Cforall. 4 // 5 // boundedBuffer.c -- 6 // 4 // 5 // boundedBuffer.c -- 6 // 7 7 // Author : Peter A. Buhr 8 8 // Created On : Mon Oct 30 12:45:13 2017 9 9 // Last Modified By : Peter A. Buhr 10 // Last Modified On : Mon Oct 30 23:02:46201711 // Update Count : 912 // 10 // Last Modified On : Mon Oct 30 18:00:10 2017 11 // Update Count : 7 12 // 13 13 14 14 #include <stdlib> 15 #include <fstream> // random15 #include <fstream> 16 16 #include <kernel> 17 17 #include <thread> 18 #include <unistd.h> 18 #include <unistd.h> // getpid 19 19 20 20 monitor Buffer { … … 31 31 32 32 void insert( Buffer & mutex buffer, int elem ) { 33 if ( buffer.count == 20 ) wait( &buffer.empty );33 if ( buffer.count == 20 ) wait( buffer.empty ); 34 34 buffer.elements[buffer.back] = elem; 35 35 buffer.back = ( buffer.back + 1 ) % 20; 36 36 buffer.count += 1; 37 signal( &buffer.full );37 signal( buffer.full ); 38 38 } 39 39 int remove( Buffer & mutex buffer ) { 40 if ( buffer.count == 0 ) wait( &buffer.full );40 if ( buffer.count == 0 ) wait( buffer.full ); 41 41 int elem = buffer.elements[buffer.front]; 42 42 buffer.front = ( buffer.front + 1 ) % 20; 43 43 buffer.count -= 1; 44 signal( &buffer.empty );44 signal( buffer.empty ); 45 45 return elem; 46 46 } … … 52 52 void main( Producer & prod ) { 53 53 for ( int i = 1; i <= prod.N; i += 1 ) { 54 yield( rand om( 5 ) );54 yield( rand48( 5 ) ); 55 55 insert( prod.buffer, 1 ); 56 56 } // for … … 69 69 cons.sum = 0; 70 70 for ( ;; ) { 71 yield( rand om( 5 ) );71 yield( rand48( 5 ) ); 72 72 int item = remove( cons.buffer ); 73 73 if ( item == -1 ) break; // sentinel ? … … 90 90 processor p; 91 91 92 //rand om_seed( getpid() );93 rand om_seed( 1003 );92 //rand48seed( getpid() ); 93 rand48seed( 1003 ); 94 94 95 95 for ( i = 0; i < Cons; i += 1 ) { // create consumers
Note: See TracChangeset
for help on using the changeset viewer.