0

私は 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);
4

0 に答える 0