私は C++ (コンパイラとして g++) で CUPS フィルタに取り組んでいます。コードは認証プロセスであり、認証が正しい場合にのみジョブをリリースできます。もし間違っていたら、印刷ジョブをキャンセルしなければなりません。
ドキュメントを印刷してフィルターが機能すると、認証プロセスで一連のコードが実行されますが、突然、機能が停止します。コードの一部にコメントを付けると (どの部分であるかは関係ありません)、認証のシーケンスでもう少し正しく実行されます。分割時にコードをテストしたところ、フローは正常に機能しました。
このバグには考えられる原因があります - スタック サイズの制限、時間の制限、またはその他の一般的なバグですか?
ありがとう。
コード:
認証の応答待ち(Javaがデータファイルを作成)
/** Start monitor of authentication response **/
time_t starttime, now;
time(&starttime);
pthread_t thread_id = starttime;
pthread_create(&thread_id, 0, &FileManager, NULL);
do{
sleep(1);
time(&now);
}while(!file_available && difftime(now, starttime) < config.GetJobTimeout());
pthread_cancel(thread_id);
...
ReturningJob returningJob;
returningJob.Execute(path + expected_filename);
ReturningJob ファイル
this->Fill(filepath);
std::string xml = this->GetSerializedXML();
this->SaveFile(this->GenerateFilename(path), xml);