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