14:47:20 15: [ RUN ] FocusSelection.when_client_connects_shell_is_notified_of_session
14:47:22 15: [2017-08-10 14:47:22.572677] mirplatform: Found graphics driver: mir:mesa-x11 (version 1.0.0)
...
14:47:39 15: [2017-08-10 14:47:39.489932] mirserver: . |_ Scaling factor: 1.00
14:47:41 15: ==12654== Thread 2:
14:47:41 15: ==12654== Conditional jump or move depends on uninitialised value(s)
14:47:41 15: ==12654== at 0x471C837: pthread_mutex_lock (pthread_mutex_lock.c:71)
14:47:41 15: ==12654== by 0x8D7E886: __gthread_mutex_lock(pthread_mutex_t*) (gthr-default.h:748)
14:47:41 15: ==12654== by 0x8D81B9F: std::mutex::lock() (mutex:135)
14:47:41 15: ==12654== by 0x8E556C0: std::lock_guard<std::mutex>::lock_guard(std::mutex&) (mutex:386)
14:47:41 15: ==12654== by 0x92BD6F6: mir_test_framework::ServerRunner::start_mir_server()::{lambda()#1}::operator()() const::{lambda(mir::DisplayServer&)#1}::operator()(mir::DisplayServer) const::{lambda()#1}::operator()() const (server_runner.cpp:117)
OK, so "started_cv.wait_for(lock, std::chrono::seconds{10}, [&]{ return started; });" has timed out, the function has exited and then the "main loop" has attempted to lock the local variable.
Eugh!
14:47:20 15: [ RUN ] FocusSelection. when_client_ connects_ shell_is_ notified_ of_session mutex_lock. c:71) mutex_lock( pthread_ mutex_t* ) (gthr-default. h:748) guard<std: :mutex> ::lock_ guard(std: :mutex& ) (mutex:386) framework: :ServerRunner: :start_ mir_server( )::{lambda( )#1}::operator( )() const:: {lambda( mir::DisplaySer ver&)#1} ::operator( )(mir:: DisplayServer) const:: {lambda( )#1}::operator( )() const (server_ runner. cpp:117)
14:47:22 15: [2017-08-10 14:47:22.572677] mirplatform: Found graphics driver: mir:mesa-x11 (version 1.0.0)
...
14:47:39 15: [2017-08-10 14:47:39.489932] mirserver: . |_ Scaling factor: 1.00
14:47:41 15: ==12654== Thread 2:
14:47:41 15: ==12654== Conditional jump or move depends on uninitialised value(s)
14:47:41 15: ==12654== at 0x471C837: pthread_mutex_lock (pthread_
14:47:41 15: ==12654== by 0x8D7E886: __gthread_
14:47:41 15: ==12654== by 0x8D81B9F: std::mutex::lock() (mutex:135)
14:47:41 15: ==12654== by 0x8E556C0: std::lock_
14:47:41 15: ==12654== by 0x92BD6F6: mir_test_
OK, so "started_ cv.wait_ for(lock, std::chrono: :seconds{ 10}, [&]{ return started; });" has timed out, the function has exited and then the "main loop" has attempted to lock the local variable.