0
私はトピックで言及された本を通過しています、そして1つはバグです。バリアのために、解決策は、以下の(擬似)コードです:セマフォーのリトルブック - バリア
1 rendezvous
2
3 mutex.wait()
4 count = count + 1
5 mutex.signal()
6
7 if count == n: barrier.signal()
8
9 barrier.wait()
10 barrier.signal()
11
12 critical point
しかし、カウンタの読み出しはまた、ミューテックスで保護するので、読みながら何も矛盾はありませんではないでしょうか?私はこれを意味します:
3 mutex.wait()
4 count = count + 1
5 if count == n: barrier.signal()
6 mutex.signal()
または、私はカウンタのバグについて過度に慎重ですか?
ありがとうございました。