Ejemplo n.º 1
0
BOOL vjpegTryLock (void)
{
#ifndef ECOS
	if(tt_rmutex_try_lock (&g_vpJPEG.mtLock)==0)
#else
	if(cyg_mutex_trylock (&g_vpJPEG.mtLock)==true)
#endif
		return TRUE;
	else
		return FALSE;
}
Ejemplo n.º 2
0
static void entry0( cyg_addrword_t data )
{
    cyg_mutex_lock( &m0 ); {
        CHECK( ! cyg_mutex_trylock( &m0 ) );
        cyg_mutex_lock( &m1 ); {
            CHECK( ! cyg_mutex_trylock( &m0 ) );            
        } cyg_mutex_unlock( &m1 );
    } cyg_mutex_unlock( &m0 );

    cyg_mutex_lock( &m0 ); {
        while ( 0 == m0d )
            cyg_cond_wait( &cvar0 );
        CHECK( 1 == m0d++ );
        cyg_cond_signal( &cvar0 );
        while ( 4 != m0d )
            cyg_cond_wait( &cvar1 );
        CHECK( 4 == m0d );
    } cyg_mutex_unlock( &m0 );

    finish( (cyg_ucount8)data );
}
Ejemplo n.º 3
0
bool cyg_recursive_mutex_trylock( cyg_recursive_mutex_t *mx )
{
    bool result=false;
    cyg_scheduler_lock();
    {
        if( cyg_thread_self() == mx->owner ) {
            mx->count++;
            result = true;
        } else {
            result = cyg_mutex_trylock( &mx->mutex );
            if (result == true) {
                mx->count = 1;
                mx->owner = cyg_thread_self();
            }
        }
    }
  cyg_scheduler_unlock();
  return result;
}
Ejemplo n.º 4
0
static void entry1( cyg_addrword_t data )
{
    cyg_mutex_lock( &m0 ); {
        CHECK( cyg_mutex_trylock( &m1 ) ); {
        } cyg_mutex_unlock( &m1 );
    } cyg_mutex_unlock( &m0 );

    cyg_mutex_lock( &m0 ); {
        CHECK( 0 == m0d++ );
        cyg_cond_broadcast( &cvar0 );
    } cyg_mutex_unlock( &m0 );
    
    cyg_mutex_lock( &m0 ); {
        while( 1 == m0d )
            cyg_cond_wait( &cvar0 );
        CHECK( 2 == m0d++ );
        cyg_cond_signal( &cvar0 );
        while( 3 == m0d )
            cyg_cond_wait( &cvar1 );
    } cyg_mutex_unlock( &m0 );

    finish( (cyg_ucount8)data );
}
Ejemplo n.º 5
0
gw_bool_t gw_mutex_trylock(gw_mutex_t *mutex)
{
	return cyg_mutex_trylock(mutex);
}