クローズド ソースのサード パーティ ライブラリとスレッドの一時停止に問題があります。このサード パーティ ライブラリを使用しているときにスレッドを一時停止できません。
OSはUbuntu 32bitです。コンパイラはg++です。
以下の次のコードは簡単で、正常に動作します。
#include <chrono>
#include <thread>
int main()
{
std::chrono::seconds duration(3);
std::this_thread::sleep_for(duration);
}
私はそれをコンパイルしました:
g++ -std=c++0x test1.cpp -o test1
さて、このサードパーティ ライブラリ (AVT の GigE ビジョン デバイス用の「PvApi」) と次のコードがあります。
#include <chrono>
#include <thread>
#include <PvApi.h>
int main()
{
PvInitialize();
std::chrono::seconds duration(3);
std::this_thread::sleep_for(duration);
}
私はそれをコンパイルしました:
g++ -std=c++0x -D_x86 -D_LINUX -D_REENTRANT test2.cpp -lPvAPI -o test2
コードを実行すると、実際に実行されます。ナノ秒も一時停止しません。どうして???
ヒントをありがとう!