linux — фильтр CUPS (C ++) не работает до конца

Я работаю над CUPS-фильтром в C ++ (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);

Возвращение файла Job

this->Fill(filepath);

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

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …