void SkypeLowIoImpl::thread_func() { utils::set_this_thread_name( "skype_low_io" ); dummy_log_trace( MODULENAME, "SkypeLowIoImpl::thread_func: started" ); is_running_ = true; while( true ) { if( must_stop_ ) break; { MUTEX_SCOPE_LOCK( mutex_ ); unsigned int seq = sequence_; dbus_.read_write_dispatch( 100 ); if( seq != sequence_ ) { if( sequence_ - seq > 1 ) { dummy_log_fatal( MODULENAME, "SkypeLowIoImpl::thread_func: missed messages" ); ::exit( 42 ); } if( callback_ ) callback_->handle( response_ ); seq = sequence_; } } THIS_THREAD_SLEEP_MS( 1 ); } is_running_ = false; dummy_log_trace( MODULENAME, "SkypeLowIoImpl::thread_func: exit" ); }