diff options
| author | David Chisnall <theraven@FreeBSD.org> | 2011-12-07 16:12:54 +0000 | 
|---|---|---|
| committer | David Chisnall <theraven@FreeBSD.org> | 2011-12-07 16:12:54 +0000 | 
| commit | e86328cbfbd09c1e271b3c94086dc9c418a849ba (patch) | |
| tree | fc53727e347bba539bd152554cbeb4f8cafff7b8 /lib/libc/stdlib/quick_exit.c | |
| parent | 0a31efe016d28d5f3bee6c24591831149d760650 (diff) | |
Notes
Diffstat (limited to 'lib/libc/stdlib/quick_exit.c')
| -rw-r--r-- | lib/libc/stdlib/quick_exit.c | 17 | 
1 files changed, 7 insertions, 10 deletions
diff --git a/lib/libc/stdlib/quick_exit.c b/lib/libc/stdlib/quick_exit.c index 11e22da8dc64..33f934854cfb 100644 --- a/lib/libc/stdlib/quick_exit.c +++ b/lib/libc/stdlib/quick_exit.c @@ -39,9 +39,6 @@ struct quick_exit_handler {  	void (*cleanup)(void);  }; -__attribute((weak)) -void _ZSt9terminatev(void); -  /**   * Lock protecting the handlers list.   */ @@ -56,26 +53,26 @@ at_quick_exit(void (*func)(void))  {  	struct quick_exit_handler *h = malloc(sizeof(struct quick_exit_handler)); -	if (0 == h) { +	if (NULL == h)  		return 1; -	}  	h->cleanup = func;  	pthread_mutex_lock(&atexit_mutex);  	h->next = handlers;  	handlers = h;  	pthread_mutex_unlock(&atexit_mutex); -	return 0; +	return (0);  } -void quick_exit(int status) +void +quick_exit(int status)  { +	struct quick_exit_handler *h; +  	/*  	 * XXX: The C++ spec requires us to call std::terminate if there is an  	 * exception here.  	 */ -	for (struct quick_exit_handler *h = handlers ; NULL != h ; h = h->next) -	{ +	for (h = handlers; NULL != h; h = h->next)  		h->cleanup(); -	}  	_Exit(status);  }  | 
