mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-04 02:18:37 +00:00
This testcase is sensitive to some sleep period. On slower
machines we need to sleep longer. See bugzilla #268623 comment #2. So let's sleep 500ms instead of 100ms, get rid of the load barrier and enable the testcase for s390x again. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12031
This commit is contained in:
parent
d0813fd49f
commit
68ca6b20d4
@ -235,9 +235,9 @@ int main ( void )
|
||||
int shared_var = 0; // is not raced upon
|
||||
|
||||
|
||||
void delay100ms ( void )
|
||||
void delay500ms ( void )
|
||||
{
|
||||
struct timespec ts = { 0, 100 * 1000 * 1000 };
|
||||
struct timespec ts = { 0, 500 * 1000 * 1000 };
|
||||
nanosleep(&ts, NULL);
|
||||
}
|
||||
|
||||
@ -245,13 +245,8 @@ void do_wait ( UWord* w )
|
||||
{
|
||||
UWord w0 = *w;
|
||||
UWord volatile * wV = w;
|
||||
while (*wV == w0) {
|
||||
#ifdef VGA_s390x
|
||||
asm volatile ("bcr 15,0\n\t"); /* load barrier */
|
||||
#else
|
||||
while (*wV == w0)
|
||||
;
|
||||
#endif
|
||||
}
|
||||
ANNOTATE_HAPPENS_AFTER(w);
|
||||
}
|
||||
|
||||
@ -266,11 +261,11 @@ void do_signal ( UWord* w )
|
||||
void* thread_fn1 ( void* arg )
|
||||
{
|
||||
UWord* w = (UWord*)arg;
|
||||
delay100ms(); // ensure t2 gets to its wait first
|
||||
delay500ms(); // ensure t2 gets to its wait first
|
||||
shared_var = 1; // first access
|
||||
do_signal(w); // cause h-b edge to second thread
|
||||
|
||||
delay100ms();
|
||||
delay500ms();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -280,7 +275,7 @@ void* thread_fn2 ( void* arg )
|
||||
do_wait(w); // wait for h-b edge from first thread
|
||||
shared_var = 2; // second access
|
||||
|
||||
delay100ms();
|
||||
delay500ms();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
@ -1,3 +1,2 @@
|
||||
prereq: (../../tests/arch_test s390x; if [ $? = 0 ]; then false; else true; fi)
|
||||
vgopts: -q
|
||||
prog: annotate_hbefore
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user