Commit 189cd505 by Howard Hinnant Committed by Paolo Carlini

10097.cc: Fix race condition.

2006-03-12  Howard Hinnant  <hhinnant@apple.com>

	* testsuite/27_io/basic_filebuf/underflow/char/10097.cc:
	Fix race condition.
	* testsuite/27_io/objects/char/9661-1.cc: Likewise.
	* testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise.

From-SVN: r111978
parent 163659ad
2006-03-12 Howard Hinnant <hhinnant@apple.com>
* testsuite/27_io/basic_filebuf/underflow/char/10097.cc:
Fix race condition.
* testsuite/27_io/objects/char/9661-1.cc: Likewise.
* testsuite/27_io/objects/wchar_t/9661-1.cc: Likewise.
2006-03-10 Paolo Carlini <pcarlini@suse.de> 2006-03-10 Paolo Carlini <pcarlini@suse.de>
* include/tr1/cmath: Add atan2 and pow bits; add using declarations. * include/tr1/cmath: Add atan2 and pow bits; add using declarations.
......
...@@ -3,7 +3,8 @@ ...@@ -3,7 +3,8 @@
// 2001-05-21 Benjamin Kosnik <bkoz@redhat.com> // 2001-05-21 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006
// Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -61,7 +62,7 @@ void test16() ...@@ -61,7 +62,7 @@ void test16()
VERIFY( false ); VERIFY( false );
} }
semaphore s1; semaphore s1, s2;
int fval = fork(); int fval = fork();
if (fval == -1) if (fval == -1)
{ {
...@@ -72,11 +73,12 @@ void test16() ...@@ -72,11 +73,12 @@ void test16()
{ {
filebuf fbout; filebuf fbout;
fbout.open(name, ios_base::in|ios_base::out); fbout.open(name, ios_base::in|ios_base::out);
VERIFY ( fbout.is_open() ); VERIFY( fbout.is_open() );
fbout.sputn("0123456789", 10); fbout.sputn("0123456789", 10);
fbout.pubsync(); fbout.pubsync();
s1.wait (); s1.wait();
fbout.close(); fbout.close();
s2.signal();
exit(0); exit(0);
} }
...@@ -97,7 +99,8 @@ void test16() ...@@ -97,7 +99,8 @@ void test16()
} }
fb.close(); fb.close();
s1.signal (); s1.signal();
s2.wait();
} }
int main() int main()
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
// 2003-04-30 Petur Runolfsson <peturr02@ru.is> // 2003-04-30 Petur Runolfsson <peturr02@ru.is>
// Copyright (C) 2003, 2005 Free Software Foundation, Inc. // Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -57,14 +57,15 @@ void test01() ...@@ -57,14 +57,15 @@ void test01()
VERIFY (file != NULL); VERIFY (file != NULL);
fputs("Whatever\n", file); fputs("Whatever\n", file);
fflush(file); fflush(file);
s1.signal (); s1.signal();
s2.wait (); s2.wait();
fclose(file); fclose(file);
s1.signal();
exit(0); exit(0);
} }
freopen(name, "r", stdin); freopen(name, "r", stdin);
s1.wait (); s1.wait();
int c1 = fgetc(stdin); int c1 = fgetc(stdin);
VERIFY( c1 != EOF ); VERIFY( c1 != EOF );
...@@ -82,7 +83,8 @@ void test01() ...@@ -82,7 +83,8 @@ void test01()
int c5 = cin.rdbuf()->sgetc(); int c5 = cin.rdbuf()->sgetc();
VERIFY( c5 != EOF ); VERIFY( c5 != EOF );
VERIFY( c5 == c4 ); VERIFY( c5 == c4 );
s2.signal (); s2.signal();
s1.wait();
} }
int main() int main()
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
// 2003-04-30 Petur Runolfsson <peturr02@ru.is> // 2003-04-30 Petur Runolfsson <peturr02@ru.is>
// Copyright (C) 2003, 2005 Free Software Foundation, Inc. // Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
// //
// This file is part of the GNU ISO C++ Library. This library is free // This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the // software; you can redistribute it and/or modify it under the
...@@ -56,14 +56,15 @@ void test01() ...@@ -56,14 +56,15 @@ void test01()
FILE* file = fopen(name, "w"); FILE* file = fopen(name, "w");
fputs("Whatever\n", file); fputs("Whatever\n", file);
fflush(file); fflush(file);
s1.signal (); s1.signal();
s2.wait (); s2.wait();
fclose(file); fclose(file);
s1.signal();
exit(0); exit(0);
} }
freopen(name, "r", stdin); freopen(name, "r", stdin);
s1.wait (); s1.wait();
wint_t c1 = fgetwc(stdin); wint_t c1 = fgetwc(stdin);
VERIFY( c1 != WEOF ); VERIFY( c1 != WEOF );
...@@ -81,7 +82,8 @@ void test01() ...@@ -81,7 +82,8 @@ void test01()
wint_t c5 = wcin.rdbuf()->sgetc(); wint_t c5 = wcin.rdbuf()->sgetc();
VERIFY( c5 != WEOF ); VERIFY( c5 != WEOF );
VERIFY( c5 == c4 ); VERIFY( c5 == c4 );
s2.signal (); s2.signal();
s1.wait();
} }
int main() int main()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment