]> granicus.if.org Git - postgresql/commitdiff
Change getpid() while loop to use sched_yield(), greatly speeds up test.
authorBruce Momjian <bruce@momjian.us>
Mon, 5 Apr 2004 14:12:32 +0000 (14:12 +0000)
committerBruce Momjian <bruce@momjian.us>
Mon, 5 Apr 2004 14:12:32 +0000 (14:12 +0000)
sched_yield is a requirement for the test but not for our PostgreSQL
code, so if it causes a portability problem, we will remove it.

src/tools/thread/thread_test.c

index d7ea309d243b8d5dfe8738fe09667f46375ef50e..903462755f11d7f6ae06f1e0609b9bddb9eaae5a 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- *     $PostgreSQL: pgsql/src/tools/thread/thread_test.c,v 1.13 2004/04/05 05:43:06 momjian Exp $
+ *     $PostgreSQL: pgsql/src/tools/thread/thread_test.c,v 1.14 2004/04/05 14:12:32 momjian Exp $
  *
  *     This program tests to see if your standard libc functions use
  *     pthread_setspecific()/pthread_getspecific() to be thread-safe.
@@ -83,7 +83,7 @@ defines to your template/$port file before compiling this program.\n\n"
        pthread_create(&thread2, NULL, (void * (*)(void *)) func_call_2, NULL);
 
        while (thread1_done == 0 || thread2_done == 0)
-               getpid();       /* force system call */
+               sched_yield();  /* force system call */
 
        printf("Add this to your template/$port file:\n\n");
 
@@ -129,7 +129,7 @@ void func_call_1(void) {
         */
        errno1_set = 1;
        while (errno2_set == 0)
-               getpid();       /* force system call */
+               sched_yield();  /* force system call */
        if (errno != EEXIST)
        {
                        fprintf(stderr, "errno not thread-safe; exiting\n");
@@ -184,7 +184,7 @@ void func_call_2(void) {
         */
        errno2_set = 1;
        while (errno1_set == 0)
-               getpid();       /* force system call */
+               sched_yield();  /* force system call */
        if (errno != ENOENT)
        {
                        fprintf(stderr, "errno not thread-safe; exiting\n");