[sane-devel] Bug in net.c sane_exit

George Garvey tmwg-sane@inxservices.com
Fri, 21 Feb 2003 08:36:57 -0800


On Fri, Feb 21, 2003 at 04:13:21PM +0100, Henning Meier-Geinitz wrote:
> On Thu, Feb 20, 2003 at 04:14:51PM -0800, George Garvey wrote:
> >    Doesn't set global variables to NULL.
> Right. I'm curious: Which frontend are you using? Most frontends don't
> call sane_exit and then sane_init again, as far as I know, that's why
> I'm asking.

I'm linking libsane-net into our in-house developed contact manager. It
tends to be run by users all day long. The scanner will only
occasionally be used. So I chose to call sane_exit after their "last"
scan, since it may be hours (or minutes, no way of knowing) until they
want to scan again.

It may have been over cautious, but I was concerned about using up
resources by leaving sane initialized. From a cursory look, it appears
that a connection to saned is kept open, and may lock the scanner used
(of that I'm not certain -- sane_close may free up the scanner -- I
didn't investigate that closely enough to say).

> Thanks for your patch. Can you try this alternative one (against
> current CVS)? I think it's more obvious to initialize in sane_init.

That works, too. The rest of the devices probably need to be checked for
this, since as you say, normal frontends are scan only programs and
don't do this.