2012-03-22 15 views
3

新しいバリア機能を実装したい。バリア機能の実装方法は?

まず、デフォルトバリアーの実装について知りたいと思います。 (phtread、Linux)の

そして、私はpthread.hのディレクトリ(/ usr /含める)

見つける。しかし、このファイルには、私は、バリアの実装を見つけることができません。宣言のみ。

1040 /* Functions to handle barriers. */          
1041 
1042 /* Initialize BARRIER with the attributes in ATTR. The barrier is 
1043 opened when COUNT waiters arrived. */ 
1044 extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, 
1045     __const pthread_barrierattr_t *__restrict 
1046     __attr, unsigned int __count) 
1047  __THROW __nonnull ((1)); 
1048 
1049 /* Destroy a previously dynamically initialized barrier BARRIER. */ 
1050 extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) 
1051  __THROW __nonnull ((1)); 
1052 
1053 /* Wait on barrier BARRIER. */ 
1054 extern int pthread_barrier_wait (pthread_barrier_t *__barrier) 
1055  __THROW __nonnull ((1)); 

バリア機能の実装はどこに教えてください。

+0

[PThreadライブラリのソースコード?](http://stackoverflow.com/questions/3224252/source-code-of-pthread-library) –

答えて

2

http://ptgmedia.pearsoncmg.com/images/0201633922/sourcecode/barrier.c

int型barrier_wait(barrier_t *バリア)は、保留中のスレッドの数を追跡するカウンタを使用する方法を見てください。

+2

ちょっとメモ:私はこれが " David R. Butenhof著「POSIXスレッドを使ったプログラミング」 –

+0

その本のコード例でライセンスがどのようになっているのでしょうか? – Yaakov

関連する問題