0

我正在研究 C++ 中的 CUPS 过滤器(g++ 作为编译器)。该代码是一个身份验证过程,只有在身份验证正确的情况下才能释放作业。如果有误,我必须取消打印作业。

当我打印文档并且过滤器工作时,它会在身份验证过程中运行一堆代码,但突然间,他停止了工作。如果我评论一段代码(不管是哪一段),它会在身份验证序列中运行得更正确一些。我在拆分时测试了代码,并且流程运行良好。

这个错误有一个可能的原因——堆栈大小限制、时间限制或其他常见错误?

谢谢。

代码:

等待认证响应(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);

返回作业文件

this->Fill(filepath);

std::string xml = this->GetSerializedXML();
this->SaveFile(this->GenerateFilename(path), xml);
4

0 回答 0