On Thu, Aug 01, 2002 at 09:59:22AM +0200, brane@xbc.nu wrote:
> I'm not sure this is a good thing. Could we do something similar to what
> the BDB utilities are doing? (Look at __db_util_sigint in
> common/utl_sig.c in the BDB sources).
I think you meant __db_util_siginit(). :-)
To save other people the trouble of looking, the strategy there
is to set a status variable when the SIGINT is received, and
check it at various places, so that a graceful exit can be
performed.
BTW: That code looks spectacularly buggy to me. I don't see
how it would work, but I do think I see the *intent* of the
code. I think __db_util_sigresend() is also broken. If someone
else wants to eyeball it, I'd appreciate it, if only to make
me feel less crazy.
I knew you would suggest this, because you suggested it on IRC. :-)
I thought this simple patch was an expedient way solve the
immediate problem of wedged ra_locals.
The other approach dovetails nicely with the GUI "cancel" button; we
need a client->interrupted() vtable entry so that GUI users can cancel
long-running operations. The cmdline client would use a signal handler
to set the flag that this predicate would take. The GUI would do it
on a button press. We'd check the flag frequently. Ideally, blocking
operations that could potentially be length would be made non-blocking,
and we'd use select() or something to economically poll both the operation
and client->interrupted(). It is my assumption that neon already does
something much like this in order to implement its timeout functionality.
--ben
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Aug 1 19:53:10 2002