[Lumiera] starting up the GUI
Ichthyostega
prg at ichthyostega.de
Sun Jan 11 12:57:19 CET 2009
Ichthyostega schrieb:
> Regarding the failed tests:
> - bin/test-lib ThreadWrapper_test : currently lacks the ability to wait for
> the spawned threads to finish. Consequently, the sums may differ sometimes
> - bin/test-lib SubsystemRunner_test fails on the lumiera devel server, which
> somewhat puzzles me. It works ok here both on Etch and Lenny. What's the
> result on your local machines? The reported error is: reccondition.c:67: ERR:
> thread_1: lumiera_reccondition_destroy: Fatal Error: Mutex destroy failed
...as usual with threading issues, sleeping on it helps ;-)
I've just committed a change which actually seems to make the tests more robust.
Just if someone is interested: my theory for the second one is as follows:
{
Lock guard (this);
isUp_ = false;
INFO (test, "thread %s terminates.", cStr(*this));
termination ("true"==runSpec? 0 : &problemReport);
} }
Within termination(), everything is fine, and the notification can happen
only when leaving termination(). But, if this thread here gets preempted
just after returning from the termination() function, but prior to leaving
the block, the main thread (now awakend by termination), finishes the test
case ok and leaves the scope, which invokes the dtor of the subsystem object,
which in turn finds the mutex still locked.
Of course, there is no point in covering the call to termination() with a
lock (only the assignment to isUp_ should be guarded.
Hermann
More information about the Lumiera
mailing list