提交 a86c329f 编写于 作者: B Bruce Momjian

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.
上级 49c8d08b
......@@ -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");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册