pike.git/
src/
testsuite.in
Branch:
Tag:
Non-build tags
All tags
No tags
2002-10-01
2002-10-01 10:53:56 by Henrik Grubbström (Grubba) <grubba@grubba.org>
0d6f01c5ecd04b58e684382238e6c63c1a7aae13 (
35
lines) (+
28
/-
7
)
[
Show
|
Annotate
]
Branch:
7.9
Fixed condition variable test.
Rev: src/testsuite.in:1.543
1:
-
test_true([["$Id: testsuite.in,v 1.
542
2002/
09
/
24
15
:
14
:
47
grubba Exp $"]]);
+
test_true([["$Id: testsuite.in,v 1.
543
2002/
10
/
01
10
:
53
:
56
grubba Exp $"]]);
// This triggered a bug only if run sufficiently early. test_compile_any([[#pike 7.2]])
3337:
test_any([[ array data=({0,Thread.Mutex(),Thread.Mutex(),0}); data[3]=data[2]->lock(); thread_create(lambda(array data) {object o=data[1]->lock(); destruct(data[3]); sleep(10); data[0]=1; destruct(o); },data); object l=data[2]->lock(1); object ll=data[1]->lock(); return data[0]; ]],1) test_any([[ array data=({1, Thread.Mutex(), Thread.Condition(), 0});
-
for(int
e=0;e<3;e++)
{
data[3]++;
thread_create(lambda(array
data)
{
-
for(int e
=
0;e<1000;e++)
{ object o=
data[1]->lock();
data[0]*=2;
-
for(int d=0;d<5;d++) { data[0]--; data[0]*=2; } data[0]--; destruct(o); }
-
data[3]--; data[2]->signal();}, data);}
-
while(data[3]) data[2]->wait(); return data[0];]],1)
+
object
key
= data[1]->lock();
-
+
for(int e=0;e<3;e++) {
+
data[3]++;
+
thread_create(lambda(array data) {
+
for(int e=0;e<1000;e++) {
+
object o=data[1]->lock();
+
data[0]*=2;
+
for(int d=0;d<5;d++) {
+
data[0]--;
+
data[0]*=2;
+
}
+
data[0]--;
+
destruct(o);
+
}
+
object o = data[1]->lock();
+
data[3]--;
+
data[2]->signal();
+
}, data);
+
}
+
+
while(data[3])
+
data[2]->wait(key);
+
return data[0];
+
]],1)
+
// /precompiled/condition test_true(Thread.Condition()) test_do(Thread.Condition()->signal())