C++のスレッドに問題があります。セッターとスレッド
2つのスレッドが実行されています.1つはクライアントを実行し、もう1つはリスナーとして機能します。
shutdown_=true;
std::cout<<shutdown_<<std::endl;
shutdown_
などの揮発性設定し、リスナスレッドはshutdown()
メソッドを呼び出すだけであり、それが唯一の他のスレッド中にアクセスされる:リスナー・スレッドは、以下のんがshutdown()
メソッドを呼び出しwait()
モード(Poco synchronizedObject wait()
)です。
なんらかの理由で、cout
は印刷を「0」に保ち、最初は(xcodeを使用している間)、shutdown_=true
は何もしないという警告が表示されます。この警告は、コンパイル後に消えました。
私はMutexロックを使用して、行の前後でロックとアンロックを試みましたが、何の効果もありませんでした。 私は完全にし、代わりにそれを使用しての機能shutDown()
を削除することになった次のように、私はパブリックであることをshutDown_
を変更し、リスナースレッドから直接アクセス:
client_->shutdown_=true
正常に動作します。私は問題が何だったのか、そしてそれを将来どのように避けるべきか分かりません。
ありがとう、
コンパイラの警告はあまり意味がありません...あなたは誤ってシャットダウンしていなかったのでしょうか?== true; ?さらに多くのコードを投稿すると役立つかもしれません。 –
別のメモに、どのように私は解決として質問をマークするのですか? – Matan
正解の左側にあるチェックマークをクリックします。 –