You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by wr...@apache.org on 2001/07/24 07:17:27 UTC

cvs commit: apr/test testthread.c

wrowe       01/07/23 22:17:27

  Modified:    test     testthread.c
  Log:
    Update the test suite to reflect the new thread worker's arguments.
  
  Revision  Changes    Path
  1.18      +27 -9     apr/test/testthread.c
  
  Index: testthread.c
  ===================================================================
  RCS file: /home/cvs/apr/test/testthread.c,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- testthread.c	2001/03/14 15:56:44	1.17
  +++ testthread.c	2001/07/24 05:17:26	1.18
  @@ -58,6 +58,7 @@
   #include "apr_general.h"
   #include "errno.h"
   #include <stdio.h>
  +#include <stdlib.h>
   #ifdef BEOS
   #include <unistd.h>
   #endif
  @@ -72,57 +73,66 @@
   }
   #else /* !APR_HAS_THREADS */
   
  -void * APR_THREAD_FUNC thread_func1(void *data);
  -void * APR_THREAD_FUNC thread_func2(void *data);
  -void * APR_THREAD_FUNC thread_func3(void *data);
  -void * APR_THREAD_FUNC thread_func4(void *data);
  +void * APR_THREAD_FUNC thread_func1(apr_thread_t *thd, void *data);
  +void * APR_THREAD_FUNC thread_func2(apr_thread_t *thd, void *data);
  +void * APR_THREAD_FUNC thread_func3(apr_thread_t *thd, void *data);
  +void * APR_THREAD_FUNC thread_func4(apr_thread_t *thd, void *data);
   
   
   apr_lock_t *thread_lock;
   apr_pool_t *context;
   int x = 0;
  +apr_status_t exit_ret_val = 123; /* just some made up number to check on later */
   
  -void * APR_THREAD_FUNC thread_func1(void *data)
  +void * APR_THREAD_FUNC thread_func1(apr_thread_t *thd, void *data)
   {
       int i;
  +    apr_pool_t *pool = apr_thread_pool_get(thd);
       for (i = 0; i < 10000; i++) {
           apr_lock_acquire(thread_lock);
           x++;
           apr_lock_release(thread_lock);
       }
  +    apr_thread_exit(thd, &exit_ret_val);
       return NULL;
   } 
   
  -void * APR_THREAD_FUNC thread_func2(void *data)
  +void * APR_THREAD_FUNC thread_func2(apr_thread_t *thd, void *data)
   {
       int i;
  +    apr_pool_t *pool = apr_thread_pool_get(thd);
       for (i = 0; i < 10000; i++) {
           apr_lock_acquire(thread_lock);
           x++;
           apr_lock_release(thread_lock);
       }
  +    apr_thread_exit(thd, &exit_ret_val);
       return NULL;
   } 
   
  -void * APR_THREAD_FUNC thread_func3(void *data)
  +void * APR_THREAD_FUNC thread_func3(apr_thread_t *thd, void *data)
   {
       int i;
  +    apr_pool_t *pool = apr_thread_pool_get(thd);
       for (i = 0; i < 10000; i++) {
           apr_lock_acquire(thread_lock);
           x++;
           apr_lock_release(thread_lock);
       }
  +    apr_thread_exit(thd, &exit_ret_val);
       return NULL;
   } 
   
  -void * APR_THREAD_FUNC thread_func4(void *data)
  +void * APR_THREAD_FUNC thread_func4(apr_thread_t *thd, void *data)
   {
       int i;
  +    apr_pool_t *pool = apr_thread_pool_get(thd);
       for (i = 0; i < 10000; i++) {
           apr_lock_acquire(thread_lock);
           x++;
           apr_lock_release(thread_lock);
       }
  +    apr_thread_exit(thd, &exit_ret_val);
       return NULL;
   } 
   
  @@ -172,7 +182,15 @@
       apr_thread_join(&s2, t2);
       apr_thread_join(&s3, t3);
       apr_thread_join(&s4, t4);
  -    fprintf (stdout, "OK\n");   
  +    fprintf (stdout, "OK\n");
  +
  +    fprintf(stdout, "Checking thread's returned value.......");
  +    if (s1 != exit_ret_val || s2 != exit_ret_val ||
  +        s3 != exit_ret_val || s4 != exit_ret_val) {
  +        fprintf(stderr, "Invalid return value (not expected value)\n");
  +        exit(-1);
  +    }
  +    fprintf(stdout, "OK\n");
   
       fprintf(stdout, "Checking if locks worked......."); 
       if (x != 40000) {