]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Removed a usleep(1) that shouldn't be necessary in session_do, and removed the
authorMatthew Nicholson <mnicholson@digium.com>
Wed, 12 Jan 2011 18:50:31 +0000 (18:50 +0000)
committerMatthew Nicholson <mnicholson@digium.com>
Wed, 12 Jan 2011 18:50:31 +0000 (18:50 +0000)
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/branches/1.6.2@301594 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/manager.c

index 5d30789dd1f2d987b6227d345f45a518e26026ed..083bed545642db8122e61347cc7bc0e06c26f996 100644 (file)
@@ -192,7 +192,6 @@ static struct {
  * data.
  */
 struct mansession_session {
-       pthread_t ms_t;         /*!< Execution thread, basically useless */
        ast_mutex_t __lock;     /*!< Thread lock -- don't use in action callbacks, it's already taken care of  */
                                /* XXX need to document which fields it is protecting */
        struct sockaddr_in sin; /*!< address we are connecting from */
@@ -3287,19 +3286,6 @@ static void *session_do(void *data)
                ast_log(LOG_EVENT, "Failed attempt from %s\n", ast_inet_ntoa(session->sin.sin_addr));
        }
 
-       /* 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);
-
        destroy_session(session);
 
 done: