pike.git
/
src
/
testsuite.in
version
»
Context lines:
10
20
40
80
file
none
3
pike.git/src/testsuite.in:5049:
},o); int tmp=0; while(o->read() != -1) tmp++; return tmp; ]],10000) dnl this will crash pike on out-of-address-space-related errors dnl test_any([[ catch { allocate(10000,thread_create)(lambda() { sleep(1); })->wait(); } ]])
+
cond(0, [[
test_any([[ // Test that a loop relinquishes the interpreter lock every now and then.
-
+
//
+
// This test is unfortunately disabled since it fails too often.
+
// The subthread does really yield in the loop, but the main
+
// thread, which really is waiting, fails to run. My conclusion is
+
// that the problem is the unreliability of th_yield() - we need
+
// to replace it with something else. :(
+
// /mast
int count, stop, fail; Thread.thread_create (lambda() { int t_start = time(); // Note: We need sub-second precision. float stop_time = 1.0 + time(t_start); while (!stop) { count++; if (time(t_start) > stop_time) { fail = 1; break; } } }); sleep (0.1); stop = 1; sleep (0.1); return fail ? -1 : count > 0; ]], 1)
-
+
]])
// _disable_threads test_any([[ #ifndef __NT__ // Using a named pipe here to make open() block. That doesn't exist on NT. object t = class { void log (function f, string msg) { #if 0