Beispiel #1
0
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" );
}