[sane-devel] scan can not be stopped: possible problems with sanei_thread?
Oliver Rauch
Oliver.Rauch at Rauch-Domain.DE
Sat Sep 15 15:49:05 UTC 2007
Hello.
After an update to the cvs version of sane-backends I released that it
is not possible to stop a scan or a preview scan any more with the umax
backend. This is tested with scanimage and xsane.
AFAIR I did not make any changes relevant to this points in the umax
backend or in xsane. (And scanimage has the same problem).
To stop a scan in the umax backend the function sane_cancel calls
do_cancel that uses sanei_thread to kill the reader process and waits
for the reader process. But sanei_thread_waitpid() never returns.
Here is the relevant code in do_cancel:
static SANE_Status do_cancel(Umax_Scanner *scanner)
{
int pid, status;
DBG(DBG_sane_proc,"do_cancel\n");
scanner->scanning = SANE_FALSE;
if (scanner->reader_pid > 0)
{
DBG(DBG_sane_info,"killing reader_process\n");
sanei_thread_kill(scanner->reader_pid);
pid = sanei_thread_waitpid(scanner->reader_pid, &status);
Does anyone remember a change that could have caused this problem?
Does anyone has also problems to stop a scan or preview scan?
Does anyone know from which sane-backends version it stopped working?
Note: USE_PTHREAD is not defined
Best regards
Oliver
More information about the sane-devel
mailing list