Merged revisions 162413 via svnmerge from
authorRussell Bryant <russell@russellbryant.com>
Tue, 9 Dec 2008 22:25:06 +0000 (22:25 +0000)
committerRussell Bryant <russell@russellbryant.com>
Tue, 9 Dec 2008 22:25:06 +0000 (22:25 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r162413 | russell | 2008-12-09 16:17:39 -0600 (Tue, 09 Dec 2008) | 8 lines

Remove the test_for_thread_safety() function completely.

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/trunk@162414 65c4cc65-6c06-0410-ace0-fbb531ad65f3

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

index 3737ef9..1c676b8 100644 (file)
@@ -307,8 +307,6 @@ static force_inline void ast_slinear_saturated_divide(short *input, short *value
        *input /= *value;
 }
 
-int test_for_thread_safety(void);
-
 #ifdef localtime_r
 #undef localtime_r
 #endif
index 250b552..e82a8d8 100644 (file)
@@ -3297,10 +3297,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_event_init();
 
        ast_makesocket();
index 4245045..71a4dcc 100644 (file)
@@ -226,68 +226,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)
 {