[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Why not use exit() instead of abort()?

From: Bernhard Kauer
Subject: Re: [Qemu-devel] Why not use exit() instead of abort()?
Date: Fri, 17 Aug 2007 18:45:52 +0200
User-agent: Mutt/1.5.16 (2007-06-11)

On Mon, Aug 06, 2007 at 07:21:21AM +0930, Dan Shearer wrote:
> On Sun, Aug 05, 2007 at 11:13:55PM +0200, Bernhard Kauer wrote:
> > There are a couple of places in qemu, where abort() is called.
> > The most commonly used one is perhaps cpu_abort() which is called
> > e.g. when a triple fault occures.
> > 
> > As abort() does not call any atexit() function, cleanup is not
> > performed. 
> Tiny correction: abort() and _exit don't call atexit(), however
> unix-like OSs still cleanup memory and file descriptors and other
> transient resources  anyway no matter how the program ended. So lack of
> cleanup isn't quite as big an issue as it might seem.
> > This leaves for example the terminal in a state where
> > the cursor is invisible.
> Non-transient resources such as DSOs and domain sockets are not cleaned
> up by the OS, which accounts for the terminal problem you noticed.

Well, the problem is here that the function term_exit() is never
called, which would restore the terminal state to the old version
via a tcsetattr().

> > Are there any reasons not to use exit(1) in cpu_abort()?
> Speed. I used to use abort() or _exit() for speed, ie they didn't hang
> around while atexit() waited politely for timeouts. I thought if I told
> the program to stop it should stop immediately :-)

I would use a 'kill -TERM' for that.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]