From a86c329f99bf9cccb98a80f6d01316fb5305a169 Mon Sep 17 00:00:00 2001
From: Bruce Momjian <bruce@momjian.us>
Date: Mon, 5 Apr 2004 14:12:32 +0000
Subject: [PATCH] Change getpid() while loop to use sched_yield(), greatly
 speeds up test.

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 | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/tools/thread/thread_test.c b/src/tools/thread/thread_test.c
index d7ea309d243..903462755f1 100644
--- a/src/tools/thread/thread_test.c
+++ b/src/tools/thread/thread_test.c
@@ -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");
-- 
GitLab