diff --git a/src/proc/play/output-director.cpp b/src/proc/play/output-director.cpp index d27c4270b..f1e343135 100644 --- a/src/proc/play/output-director.cpp +++ b/src/proc/play/output-director.cpp @@ -100,7 +100,10 @@ namespace play { if (not shutdown_initiated_) { shutdown_initiated_ = true; - Thread ("Output shutdown supervisor", bind (&OutputDirector::bringDown, this, completedSignal)); + Thread ("Output shutdown supervisor", + [=]{ + bringDown (completedSignal); + }); } } diff --git a/tests/backend/thread-wrapper-self-recognition-test.cpp b/tests/backend/thread-wrapper-self-recognition-test.cpp index d6e53dc05..e89fa1601 100644 --- a/tests/backend/thread-wrapper-self-recognition-test.cpp +++ b/tests/backend/thread-wrapper-self-recognition-test.cpp @@ -40,15 +40,13 @@ namespace test { class TestThread : Thread { - void - doIt() - { - CHECK (invocation_happens_within_this_thread()); - } - public: TestThread() - : Thread{"test Thread self recognition", [&]() { doIt(); }} + : Thread{"test Thread self recognition" + ,[&]() + { + CHECK (invocation_happens_within_this_thread()); + }} { } bool diff --git a/tests/basics/call-queue-test.cpp b/tests/basics/call-queue-test.cpp index aba790ba6..42c931fa4 100644 --- a/tests/basics/call-queue-test.cpp +++ b/tests/basics/call-queue-test.cpp @@ -200,6 +200,7 @@ namespace test{ uint cnt = rand() % MAX_RAND_STEPS; uint delay = rand() % MAX_RAND_DELAY; + syncPoint(); // block until all threads are ready for (uint i=0; i - + - + @@ -27744,8 +27744,8 @@ - - + + @@ -27753,20 +27753,20 @@ - - + + - - + + - - + + @@ -27866,6 +27866,12 @@ + + + + + + @@ -30831,7 +30837,155 @@ - + + + + + + + + + + +

+ TEST Dispatch functors into other threads: CallQueue_test .. FAILED +

+

+ unexpected return value 134, expected 0 +

+

+ stderr was: +

+

+ 0000000459: INFO: suite.cpp:180: thread_1: invokeTestCase: ++------------------- invoking TEST: CallQueue_test +

+

+ 0000003117: CHECK: call-queue-test.cpp:251: thread_1: verify_ThreadSafety: (globalProducerSum == globalConsumerSum) +

+

+ 0000003127: BACKTRACE: call-queue-test.cpp:251: thread_1: verify_ThreadSafety: /Werk/devel/lumi/target/modules/libtest-basics.so(_ZN3lib4test14CallQueue_test19verify_ThreadSafetyEv+0x24a) [0x7fdfce328a20] +

+

+ 0000003128: BACKTRACE: call-queue-test.cpp:251: thread_1: verify_ThreadSafety: /Werk/devel/lumi/target/modules/libtest-basics.so(_ZN3lib4test14CallQueue_test3runERSt6vectorISsSaISsEE+0x34) [0x7fdfce32764e] +

+

+ 0000003129: BACKTRACE: call-queue-test.cpp:251: thread_1: verify_ThreadSafety: /Werk/devel/lumi/target/modules/liblumierasupport.so(+0x1d7cb0) [0x7fdfcb7dfcb0] +

+

+ 0000003130: BACKTRACE: call-queue-test.cpp:251: thread_1: verify_ThreadSafety: /Werk/devel/lumi/target/modules/liblumierasupport.so(_ZN4test5Suite3runERSt6vectorISsSaISsEE+0x38f) [0x7fdfcb7e0249] +

+

+ 0000003131: BACKTRACE: call-queue-test.cpp:251: thread_1: verify_ThreadSafety: ./test-suite() [0x40625e] +

+

+ 0000003132: BACKTRACE: call-queue-test.cpp:251: thread_1: verify_ThreadSafety: /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7fdfc9029b45] +

+

+ 0000003133: BACKTRACE: call-queue-test.cpp:251: thread_1: verify_ThreadSafety: ./test-suite() [0x4060a9] +

+

+ END +

+ + +
+ + + + + + + + +

+ for I in `seq 1 50`; do target/test-suite CallQueue_test; done +

+ +
+
+
+ + + + + + + +

+ habe gleichzeitig erst die Testsuite gebaut mit -j 36 und dann laufen lassen. +

+

+ Gleichzeitig aber auch noch das ./build-website-Skript +

+

+ und eine Doxygen-Seite im Browser geladen +

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+ weil sich die Threads gegenseitig ihre Counter inkrementieren. +

+ + +
+
+ + + + + +
+
+ + + + + + + + + +

+ alle anderen (mit Ausnahme von BusTerm_test) +

+

+ verwenden globale Variable oder überhaupt keine Objektfelder +

+ + +
+ +
+
+
+
+