Esempio n. 1
0
int aos_mutex_lock(aos_mutex_t *mutex, unsigned int timeout)
{
    kstat_t ret;

    if (mutex == NULL) {
        return -EINVAL;
    }

    if (timeout == AOS_WAIT_FOREVER) {
        ret = krhino_mutex_lock(mutex->hdl, RHINO_WAIT_FOREVER);
    } else {
        ret = krhino_mutex_lock(mutex->hdl, MS2TICK(timeout));
    }

    /* rhino allow nested */
    if (ret == RHINO_MUTEX_OWNER_NESTED) {
        ret = RHINO_SUCCESS;
    }

    if (ret == RHINO_SUCCESS) {
        return 0;
    }

    ERRNO_MAPPING(ret);
}
Esempio n. 2
0
static void task_mutex_opr_entry(void *arg)
{
    kstat_t ret;

    krhino_mutex_lock(test_mutex, RHINO_WAIT_FOREVER);

    while (notify_flag != 0x5a) {
        krhino_task_sleep(5);
    }

    ret = krhino_mutex_unlock(test_mutex);
    if (ret == RHINO_SUCCESS) {
        test_case_success++;
        PRINT_RESULT(MODULE_NAME, PASS);
    } else {
        test_case_fail++;
        PRINT_RESULT(MODULE_NAME, FAIL);
    }

    next_test_case_notify();
    ret = krhino_mutex_dyn_del(test_mutex);
    if (ret != RHINO_SUCCESS) {
        test_case_fail++;
        PRINT_RESULT(MODULE_NAME, FAIL);
    }

    krhino_task_dyn_del(krhino_cur_task_get());
}
Esempio n. 3
0
OSStatus mico_rtos_lock_mutex( mico_mutex_t* mutex )
{
    kstat_t ret;

    ret = krhino_mutex_lock(*((kmutex_t **)mutex), RHINO_WAIT_FOREVER);

    if (ret == RHINO_SUCCESS) {
        return kNoErr;
    }

    return kGeneralErr;
}
Esempio n. 4
0
A_STATUS a_mutex_acquire(A_MUTEX_T *pMutex)
{
    assert(pMutex);

    if (krhino_mutex_lock(pMutex, RHINO_WAIT_FOREVER) == RHINO_SUCCESS)
    {
        return A_OK;
    }
    else
    {
        return A_ERROR;
    }
}