各プロセスの整数配列の内容を出力したい。問題は、競合状態のためにすべてが雑然としていることです。
最も簡単な解決策は何ですか?デバッグしたくありません。ソートアルゴリズムをやっているので内容を表示したい。そのため、並べ替えの前後を表示すると便利です。
これをlock.cに追加しました:
#include <stdio.h>
static int lock=0; //Don't use if timing execution
void capture(int rank) {
while(lock!=0);
lock = 1;
printf("\nCaptured by %d\n", rank);
}
void release() {
lock = 0;
}
そして、印刷する前に capture() を呼び出し、印刷後に release() を呼び出します。はい、これはセマフォのようなハックです。しかし、それは機能していません、何かアイデアはありますか?