コード例 #1
0
ファイル: mutex.c プロジェクト: variemai/poly
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;
}
コード例 #2
0
ファイル: ringbuffer.c プロジェクト: baskard/stasis
// 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;
}