時々、C++は大きな時間を費やす。私は本当にこれがなぜ機能しないのか考えることができず、あなたが知っていれば幸せになるでしょう。奇妙なリストの印刷機能の動作。もし私が " n"を印刷しても、それを取り除くとうまくいかない。
私はこの関数を1秒に1回スレッドで呼び出します。
このコードは、作品は(反復されているリストの上にあるものを出力します):
void DeltaList::print()
{
pthread_mutex_lock (&mutex);
printf("\n");
list<Delta*>::iterator it;
for(it=deltas.begin(); it!=deltas.end(); it++)
{
printf("%d ", (int) (*it)->timeleft);
}
pthread_mutex_unlock (&mutex);
}
この1つは(何も印刷されません)していません。だから、
void DeltaList::print()
{
pthread_mutex_lock (&mutex);
//printf("\n");
list<Delta*>::iterator it;
for(it=deltas.begin(); it!=deltas.end(); it++)
{
printf("%d ", (int) (*it)->timeleft);
}
pthread_mutex_unlock (&mutex);
}
...?
「作品」を定義します。 –
WORKS =実際にリストにあるものを印刷します。動作しません=何もしません、何も印刷されません。 printfは私が変更するコードの唯一の部分です。これは私にはとても論理的で、質問をするのを忘れて、今編集しました。 – hfingler
それは永遠にブロックされますか?つまり、これまでに機能を残していますか? –