我正在研究 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);