diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/ChangeLog | 5 | ||||
| -rw-r--r-- | tests/tsd1.c | 32 | 
2 files changed, 28 insertions, 9 deletions
| diff --git a/tests/ChangeLog b/tests/ChangeLog index 074d5c4..6217b28 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,8 @@ +Thu Oct 15 17:42:37 1998  Ross Johnson  <rpj@swan.canberra.edu.au> + +	* tsd1.c (mythread): Fix some casts and add some message +	output. Fix inverted conditional. +  Mon Oct 12 02:12:29 1998  Ross Johnson  <rpj@ixobrychus.canberra.edu.au>  	* tsd1.c: New. Test TSD using 1 key and 2 threads. diff --git a/tests/tsd1.c b/tests/tsd1.c index cb105ae..06ffab5 100644 --- a/tests/tsd1.c +++ b/tests/tsd1.c @@ -7,24 +7,38 @@ pthread_once_t key_once = PTHREAD_ONCE_INIT;  void  make_key(void)  { -  (void) pthread_key_create(&key, free); +  if (pthread_key_create(&key, free) != 0) +    { +      printf("Key create failed\n"); +      exit(1); +    }  }  void *  mythread(void * arg)  { -  void *ptr; +  void * ptr;    (void) pthread_once(&key_once, make_key); -  if ((ptr = pthread_getspecific(key)) == NULL) + +  if ((ptr = pthread_getspecific(key)) != NULL) +    { +      printf("ERROR: Thread %d, Key 0x%x not initialised to NULL\n", +	     (int) arg, +	     (int) key); +      exit(1); +    } +  else      { -      ptr = malloc(80); -      sprintf(ptr, "Thread %d\n", (int) arg); +      ptr = (void *) malloc(80); +      sprintf((char *) ptr, "Thread %d Key 0x%x succeeded\n", +	      (int) arg, +	      (int) key);        (void) pthread_setspecific(key, ptr);      } -  if (pthread_getspecific(key) == NULL) -    printf((char *) pthread_getspecific(key)); +  if ((ptr = pthread_getspecific(key)) != NULL) +    printf((char *) ptr);    else      printf("Failed %d\n", (int) arg); @@ -37,10 +51,10 @@ main()    int rc;    pthread_t t1, t2; -  rc = pthread_create(&t1, NULL, mythread, 1); +  rc = pthread_create(&t1, NULL, mythread, (void *) 1);    printf("pthread_create returned %d\n", rc); -  rc = pthread_create(&t2, NULL, mythread, 2); +  rc = pthread_create(&t2, NULL, mythread, (void *) 2);    printf("pthread_create returned %d\n", rc);    Sleep(2000); | 
