5
Boostプロパティツリーを使用してJSONObjectをカプセル化する単純なラッパーを開発しました。 問題は、このコードでセグメンテーションフォールトです:Boostプロパティツリーによる並行性の問題
void JSONObject::parse(const std::string &text)
{
std::istringstream ss(text);
boost::property_tree::read_json(ss, *pt);
}
コンテキストのビット、私は、メッセージのシリアル化のためのJSONを使用しています。プログラムが1つのスレッドしか使用しない場合、問題なく動作します。しかし、プログラムが2つのスレッドを使用している場合、上記のコードの最後の行にセグメンテーションフォルトが与えられます。
各スレッドには独自のJSONObjectオブジェクトがあり、スレッド間で変数は共有されません。私の考えは、ストリームは内部的にスレッドセーフではないかもしれないということです。
誰でも手伝ってもらえますか?
スレッド間でptが共有されていませんか?あなたは、上記の機能を呼び出す最小限のアプリケーションを作ってみましたか? AFAIK istringstreamとread_jsonはスレッドセーフなので、コードの他の場所にバグがある可能性があります。 –
はい、確信しています。 – mariolpantunes
http://sscce.org/を投稿することをおすすめしますか?それはあなたをより簡単に支援します。 – Yakk