Beispiel #1
0
int main(void){
 	int i;
 	lock_a=0;
 	FETCH_AND_ADD(1,lock_a);
 	printf("%d\n",lock_a);
 	for(i=0; i<10; i++){
		pthread_create(&threads[i],NULL,&rdp,(void*)i);
		//pthread_join(threads[i], &status);
		
	}

 	return 0;
}
Beispiel #2
0
// Not threadsafe.
lsn_t stasis_ringbuffer_nb_reserve_space(stasis_ringbuffer_t * ring, lsn_t sz) {
  if(freespace(ring) < sz) { return RING_FULL; }
  lsn_t ret = ring->wf;
  FETCH_AND_ADD(&ring->wf, sz); //ring->wf += sz;
  return ret;
}