[sane-devel] Uninterrupted HP LaserJet M1005 Backend

Couriousous couriousous at mandriva.org
Thu Jan 31 22:42:06 UTC 2008


> > If break scaning with signal 2, then see next:
> >
> >     1. backend stalled into sane_cancel.get_data... - next step only
> > 'killall scanimage'
>
> Ok, this is because sane_cancel() is called from a signal handler. I've
> re-read the sane API documentation and the backend should handle that.

Here is a fix. I've re-re-read the sane API doc more carefully and 
sane_cancel() can only initiate the canceling. So I use a flag to tell 
sane_read() to cancel the scan. 

I'm not completly happy with this solution since a race condition is possible 
if sane_cancel() is called after the last test of sane_read().

Moreover if sane_cancel() is called synchronously between sane_start() and 
sane_read(), the canceling will only be done at sane_close() call...

So, comments are really welcome !

Philippe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fix-cancel.patch
Type: text/x-diff
Size: 2104 bytes
Desc: not available
Url : http://lists.alioth.debian.org/pipermail/sane-devel/attachments/20080131/55ced976/attachment.patch 


More information about the sane-devel mailing list