sane-project-website/old-archive/1997-07/0143.html

64 wiersze
3.1 KiB
HTML

<!-- received="Sun Jul 27 08:11:16 1997 MST" -->
<!-- sent="Sun, 27 Jul 1997 08:02:56 -0700" -->
<!-- name="David Mosberger-Tang" -->
<!-- email="davidm@azstarnet.com" -->
<!-- subject="Re: sane-0.62 released" -->
<!-- id="199707271502.IAA03269@panda.mosberger" -->
<!-- inreplyto="199707270737.JAA02727@cave.BitWizard.nl" -->
<title>sane-devel: Re: sane-0.62 released</title>
<h1>Re: sane-0.62 released</h1>
<b>David Mosberger-Tang</b> (<a href="mailto:davidm@azstarnet.com"><i>davidm@azstarnet.com</i></a>)<br>
<i>Sun, 27 Jul 1997 08:02:56 -0700</i>
<p>
<ul>
<li> <b>Messages sorted by:</b> <a href="date.html#143">[ date ]</a><a href="index.html#143">[ thread ]</a><a href="subject.html#143">[ subject ]</a><a href="author.html#143">[ author ]</a>
<!-- next="start" -->
<li> <b>Next message:</b> <a href="0144.html">David Mosberger-Tang: "Re: sane-0.62 released"</a>
<li> <b>Previous message:</b> <a href="0142.html">Rogier Wolff: "Re: sane-0.62 released"</a>
<li> <b>In reply to:</b> <a href="0141.html">Rogier Wolff: "Re: sane-0.62 released"</a>
<!-- nextthread="start" -->
<li> <b>Next in thread:</b> <a href="0142.html">Rogier Wolff: "Re: sane-0.62 released"</a>
<!-- reply="end" -->
</ul>
<!-- body="start" -->
<i>&gt;&gt;&gt;&gt;&gt; On Sun, 27 Jul 1997 09:37:21 +0200 (MET DST), <a href="mailto:R.E.Wolff@BitWizard.nl">R.E.Wolff@BitWizard.nl</a> (Rogier Wolff) said:</i><br>
<p>
Rogier&gt; nread = read (s-&gt;pipe, buf, max_len);<br>
Rogier&gt; DBG(3, "read %ld bytes\n", (long) nread);<br>
<p>
Rogier&gt; if (!s-&gt;scanning)<br>
Rogier&gt; return do_stop (s);<br>
<p>
Note that sane_cancel() can be called asynchronously from a signal<br>
handler. This means that sane_cancel() may be called while waiting<br>
for data in the read() syscall. When this happens, sane_cancel() will<br>
kill the reader-process and set s-&gt;scanning to FALSE, but it will not<br>
do any other cleanup (since that wouldn't be safe without additional<br>
"locking"). Once the main-process recognizes that scanning has been<br>
cancelled (!s-&gt;scanning is TRUE), it does the remaining clean up by<br>
calling do_stop().<br>
<p>
The reason s-&gt;scanning() does not get checked _before_ read() is<br>
called is because the frontends will not call sane_read() after<br>
cancelling the scan (well, it wouldn't hurt to check anyways, I<br>
suppose).<br>
<p>
--david<br>
<p>
<pre>
--
Source code, list archive, and docs: <a href="http://www.azstarnet.com/~axplinux/sane/">http://www.azstarnet.com/~axplinux/sane/</a>
To unsubscribe: mail -s unsubscribe <a href="mailto:sane-devel-request@listserv.azstarnet.com">sane-devel-request@listserv.azstarnet.com</a>
</pre>
<!-- body="end" -->
<p>
<ul>
<!-- next="start" -->
<li> <b>Next message:</b> <a href="0144.html">David Mosberger-Tang: "Re: sane-0.62 released"</a>
<li> <b>Previous message:</b> <a href="0142.html">Rogier Wolff: "Re: sane-0.62 released"</a>
<li> <b>In reply to:</b> <a href="0141.html">Rogier Wolff: "Re: sane-0.62 released"</a>
<!-- nextthread="start" -->
<li> <b>Next in thread:</b> <a href="0142.html">Rogier Wolff: "Re: sane-0.62 released"</a>
<!-- reply="end" -->
</ul>