mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-22 16:33:29 +00:00
cleanup
git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@32473 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
7fd6ab7ca8
commit
262a0e972f
1 changed files with 34 additions and 33 deletions
|
@ -6,9 +6,9 @@
|
|||
#include <stdio.h>
|
||||
|
||||
#if defined(_WIN32)
|
||||
#define mySleep(X) usleep(1000*(X))
|
||||
# define mySleep(X) usleep(1000*(X))
|
||||
#else
|
||||
#define mySleep(X) sleep(X)
|
||||
# define mySleep(X) sleep(X)
|
||||
#endif
|
||||
|
||||
static unsigned initialize_entered = 0;
|
||||
|
@ -25,7 +25,7 @@ static BOOL may_proceed = NO;
|
|||
{
|
||||
initialize_entered++;
|
||||
while (NO == may_proceed)
|
||||
mySleep(1);
|
||||
;
|
||||
initialize_exited++;
|
||||
}
|
||||
|
||||
|
@ -52,45 +52,46 @@ main()
|
|||
if (0 == pthread_create(&t1, 0, test, 0))
|
||||
{
|
||||
while (0 == initialize_entered && counter++ < 3)
|
||||
{
|
||||
mySleep(1);
|
||||
}
|
||||
{
|
||||
mySleep(1);
|
||||
}
|
||||
|
||||
if (0 == initialize_entered)
|
||||
{
|
||||
fprintf(stderr, "Failed to initialize\n");
|
||||
return 1;
|
||||
}
|
||||
{
|
||||
fprintf(stderr, "Failed to initialize\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (0 == pthread_create(&t2, 0, test, 0))
|
||||
{
|
||||
mySleep(1);
|
||||
/* Wait long enough for t2 to try calling +class
|
||||
*/
|
||||
mySleep(1);
|
||||
|
||||
if (class_entered > 0)
|
||||
{
|
||||
fprintf(stderr, "class entered prematurely\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
may_proceed = YES;
|
||||
|
||||
// sleep longer than t1 may need to complete initialize
|
||||
// plus time for t1 and t2 to complete "test"
|
||||
mySleep(2);
|
||||
|
||||
if (2 == class_entered)
|
||||
{
|
||||
return 0; // OK
|
||||
}
|
||||
|
||||
fprintf(stderr, "problem with initialize\n");
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
if (class_entered > 0)
|
||||
{
|
||||
fprintf(stderr, "failed to create t2\n");
|
||||
fprintf(stderr, "class entered prematurely\n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Let t1 proceed and wait long enough for it to complete
|
||||
* +initialize and for both threads to call +class
|
||||
*/
|
||||
may_proceed = YES;
|
||||
mySleep(1);
|
||||
|
||||
if (2 == class_entered)
|
||||
{
|
||||
return 0; // OK
|
||||
}
|
||||
fprintf(stderr, "problem with initialize\n");
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
fprintf(stderr, "failed to create t2\n");
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue