[asterisk-commits] tilghman: branch 1.6.2 r278983 - in /branches/1.6.2: ./ main/asterisk.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Fri Jul 23 11:44:57 CDT 2010
Author: tilghman
Date: Fri Jul 23 11:44:53 2010
New Revision: 278983
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=278983
Log:
Merged revisions 278982 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk
................
r278982 | tilghman | 2010-07-23 11:43:34 -0500 (Fri, 23 Jul 2010) | 15 lines
Merged revisions 278981 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r278981 | tilghman | 2010-07-23 11:42:25 -0500 (Fri, 23 Jul 2010) | 8 lines
Avoid race with consolethread on shutdown (on parallel processors).
(closes issue #17080)
Reported by: sybasesql
Patches:
20100721__issue17080.diff.txt uploaded by tilghman (license 14)
Tested by: sybasesql
........
................
Modified:
branches/1.6.2/ (props changed)
branches/1.6.2/main/asterisk.c
Propchange: branches/1.6.2/
------------------------------------------------------------------------------
Binary property 'trunk-merged' - no diff available.
Modified: branches/1.6.2/main/asterisk.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.6.2/main/asterisk.c?view=diff&rev=278983&r1=278982&r2=278983
==============================================================================
--- branches/1.6.2/main/asterisk.c (original)
+++ branches/1.6.2/main/asterisk.c Fri Jul 23 11:44:53 2010
@@ -1626,14 +1626,21 @@
ast_module_shutdown();
}
if (ast_opt_console || (ast_opt_remote && !ast_opt_exec)) {
- if (getenv("HOME"))
+ if (getenv("HOME")) {
snprintf(filename, sizeof(filename), "%s/.asterisk_history", getenv("HOME"));
- if (!ast_strlen_zero(filename))
+ }
+ if (!ast_strlen_zero(filename)) {
ast_el_write_history(filename);
- if (el != NULL)
- el_end(el);
- if (el_hist != NULL)
- history_end(el_hist);
+ }
+ if (consolethread == AST_PTHREADT_NULL || consolethread == pthread_self()) {
+ /* Only end if we are the consolethread, otherwise there's a race with that thread. */
+ if (el != NULL) {
+ el_end(el);
+ }
+ if (el_hist != NULL) {
+ history_end(el_hist);
+ }
+ }
}
if (option_verbose)
ast_verbose("Executing last minute cleanups\n");
More information about the asterisk-commits
mailing list