From 8ad7304e66a2b7169c8c66ac70cb50860568feb3 Mon Sep 17 00:00:00 2001 From: Matthew Nicholson Date: Wed, 12 Jan 2011 18:52:30 +0000 Subject: [PATCH] Merged revisions 301595 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r301595 | mnicholson | 2011-01-12 12:51:37 -0600 (Wed, 12 Jan 2011) | 22 lines Merged revisions 301594 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.6.2 ................ r301594 | mnicholson | 2011-01-12 12:50:31 -0600 (Wed, 12 Jan 2011) | 15 lines Removed a usleep(1) that shouldn't be necessary in session_do, and removed the ms_t member from the mansession_session structure. Merged revisions 301591 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r301591 | mnicholson | 2011-01-12 12:39:03 -0600 (Wed, 12 Jan 2011) | 5 lines Don't store the thread id for the manager session in the structure we pass to the thread for the manager session. ABE-2543 ........ ................ ................ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@301596 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/manager.c | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/main/manager.c b/main/manager.c index 961ed5786e..5edab26970 100644 --- a/main/manager.c +++ b/main/manager.c @@ -921,7 +921,6 @@ static const struct { * data. */ struct mansession_session { - pthread_t ms_t; /*!< Execution thread, basically useless */ /*! \todo XXX need to document which fields it is protecting */ struct sockaddr_in sin; /*!< address we are connecting from */ FILE *f; /*!< fdopen() on the underlying fd */ @@ -4681,19 +4680,6 @@ static void *session_do(void *data) } } - /* It is possible under certain circumstances for this session thread - to complete its work and exit *before* the thread that created it - has finished executing the ast_pthread_create_background() function. - If this occurs, some versions of glibc appear to act in a buggy - fashion and attempt to write data into memory that it thinks belongs - to the thread but is in fact not owned by the thread (or may have - been freed completely). - - Causing this thread to yield to other threads at least one time - appears to work around this bug. - */ - usleep(1); - session_destroy(session); ast_mutex_destroy(&s.lock);