[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Client hangs when svnserve does not respond

From: Christopher Ness <chris_at_nesser.org>
Date: 2005-08-03 04:29:16 CEST

On Wed, 2005-08-03 at 00:51 +0100, Julian Foad wrote:
> David James wrote:
> > On 8/2/05, Julian Foad <julianfoad@btopenworld.com> wrote:
> >
> >>The problem, as I understand it, is that in several different cases the user
> >>can't interrupt Subversion during a system call that is taking too long. This
> >>is because our SIGINT handler just sets a flag when they press Ctrl-C and
> >>doesn't do anything else. We should be able to modify our SIGINT handler to
> >>avoid that problem. It should set the flag, and then arrange that if a second
> >>SIGINT should be received, it will unconditionally terminate the application.
> >>It can probably do so by uninstalling itself, so that any future SIGINT has the
> >>default handling. [*]

Posting without the fear of being laughed at.

Could the signal sent be handled by forking a new process (or thread) to
clean up anything that needs cleaning in the background.
Then uninstall the handler and send another SIGINT to the process to
terminate it while the new back grounded process cleans up with WC.

This would appear to return the user to a prompt right away after
pressing C-c -- I think.

This way there would be fast exits w.r.t the user and clean ones w.r.t
the working copy (is it the WC that needs cleaning? it must be...).

If the cleanup process ever hung it would be problematic, but not the
end of the world.

Other than the obvious complications this would bring about by forking a
new process to clean up what do people think? Could it be done?

Cheers,
Chris

-- 
PGP Public Key: http://www.nesser.org/pgp-key/
22:11:18 up 3:53, 2 users, load average: 0.27, 0.61, 0.33

Received on Wed Aug 3 04:28:44 2005

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.