Changes in src/tests/multi-monitor.c [83a071f9:bcda04c]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/tests/multi-monitor.c
r83a071f9 rbcda04c 10 10 static monitor_t m1, m2, m3; 11 11 12 void increment( monitor_t & mutex p1, monitor_t & mutex p2, int &value ) {13 value += 1;12 void increment( monitor_t * mutex p1, monitor_t * mutex p2, int * value ) { 13 *value += 1; 14 14 } 15 15 16 thread MyThread { 16 struct MyThread { 17 thread_desc __thrd; 17 18 int target; 18 19 }; 19 20 20 void ?{}( MyThread & this, int target ) { 21 this.target = target; 21 DECL_THREAD(MyThread); 22 23 void ?{}( MyThread * this, int target ) { 24 this->target = target; 22 25 } 23 26 24 void ^?{}( MyThread &mutex this ) {}27 void ^?{}( MyThread * mutex this ) {} 25 28 26 void main( MyThread &this ) {29 void main( MyThread* this ) { 27 30 for(int i = 0; i < 1000000; i++) { 28 choose(this .target) {29 case 0: increment( m1, m2,global12 );30 case 1: increment( m2, m3,global23 );31 case 2: increment( m1, m3,global13 );31 choose(this->target) { 32 case 0: increment( &m1, &m2, &global12 ); 33 case 1: increment( &m2, &m3, &global23 ); 34 case 2: increment( &m1, &m3, &global13 ); 32 35 } 33 36 } 34 }35 36 forall(dtype T | sized(T) | { void ^?{}(T & mutex); })37 void delete_mutex(T * x) {38 ^(*x){};39 free(x);40 37 } 41 38 … … 43 40 processor p; 44 41 { 45 MyThread* f[6];42 scoped(MyThread) * f[6]; 46 43 for(int i = 0; i < 6; i++) { 47 f[i] = new(i % 3);44 f[i] = ((scoped(MyThread) *)malloc()){ i % 3 }; 48 45 } 49 46 50 47 for(int i = 0; i < 6; i++) { 51 delete _mutex( f[i] );48 delete( f[i] ); 52 49 } 53 50 }
Note:
See TracChangeset
for help on using the changeset viewer.