]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Remove the test_for_thread_safety() function completely.
authorRussell Bryant <russell@russellbryant.com>
Tue, 9 Dec 2008 22:17:39 +0000 (22:17 +0000)
committerRussell Bryant <russell@russellbryant.com>
Tue, 9 Dec 2008 22:17:39 +0000 (22:17 +0000)
The test is not valid.  Besides, if we actually suspected that recursive
mutexes were not working, we would get a ton of LOG_ERROR messages when
DEBUG_THREADS is turned on.

(inspired by a discussion on the asterisk-dev list)

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@162413 65c4cc65-6c06-0410-ace0-fbb531ad65f3

include/asterisk/utils.h
main/asterisk.c
main/utils.c

index 7b7378530063043589fe495dad3ebf55c6af7ea4..44da65e7030d016ca0719134484323f90149c0c0 100644 (file)
@@ -219,8 +219,6 @@ static force_inline void ast_slinear_saturated_divide(short *input, short *value
        *input /= *value;
 }
 
-int test_for_thread_safety(void);
-
 /*!
  * \brief thread-safe replacement for inet_ntoa().
  *
index d0f6e487be60009766a5270d23f6293af99b6699..230f9c83048f7df383be3c90683f7a3a48e5d58e 100644 (file)
@@ -2981,10 +2981,6 @@ int main(int argc, char *argv[])
        }
 #endif
 
-       /* Test recursive mutex locking. */
-       if (test_for_thread_safety())
-               ast_verbose("Warning! Asterisk is not thread safe.\n");
-
        ast_makesocket();
        sigemptyset(&sigs);
        sigaddset(&sigs, SIGHUP);
index a802fd324494a0723094372f365ac0970171b037..a8d15bba0c5016686f6362d5bc79fa034a26c664 100644 (file)
@@ -228,68 +228,6 @@ struct hostent *ast_gethostbyname(const char *host, struct ast_hostent *hp)
        return &hp->hp;
 }
 
-
-
-AST_MUTEX_DEFINE_STATIC(test_lock);
-AST_MUTEX_DEFINE_STATIC(test_lock2);
-static pthread_t test_thread; 
-static int lock_count = 0;
-static int test_errors = 0;
-
-/*! \brief This is a regression test for recursive mutexes.
-   test_for_thread_safety() will return 0 if recursive mutex locks are
-   working properly, and non-zero if they are not working properly. */
-static void *test_thread_body(void *data) 
-{ 
-       ast_mutex_lock(&test_lock);
-       lock_count += 10;
-       if (lock_count != 10) 
-               test_errors++;
-       ast_mutex_lock(&test_lock);
-       lock_count += 10;
-       if (lock_count != 20) 
-               test_errors++;
-       ast_mutex_lock(&test_lock2);
-       ast_mutex_unlock(&test_lock);
-       lock_count -= 10;
-       if (lock_count != 10) 
-               test_errors++;
-       ast_mutex_unlock(&test_lock);
-       lock_count -= 10;
-       ast_mutex_unlock(&test_lock2);
-       if (lock_count != 0) 
-               test_errors++;
-       return NULL;
-} 
-
-int test_for_thread_safety(void)
-{ 
-       ast_mutex_lock(&test_lock2);
-       ast_mutex_lock(&test_lock);
-       lock_count += 1;
-       ast_mutex_lock(&test_lock);
-       lock_count += 1;
-       ast_pthread_create(&test_thread, NULL, test_thread_body, NULL); 
-       usleep(100);
-       if (lock_count != 2) 
-               test_errors++;
-       ast_mutex_unlock(&test_lock);
-       lock_count -= 1;
-       usleep(100); 
-       if (lock_count != 1) 
-               test_errors++;
-       ast_mutex_unlock(&test_lock);
-       lock_count -= 1;
-       if (lock_count != 0) 
-               test_errors++;
-       ast_mutex_unlock(&test_lock2);
-       usleep(100);
-       if (lock_count != 0) 
-               test_errors++;
-       pthread_join(test_thread, NULL);
-       return(test_errors);          /* return 0 on success. */
-}
-
 /*! \brief Produce 32 char MD5 hash of value. */
 void ast_md5_hash(char *output, char *input)
 {