Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/synch/mutex.c

    r15d9fe6 rb7fd2a0  
    3737
    3838#include <assert.h>
     39#include <errno.h>
    3940#include <synch/mutex.h>
    4041#include <synch/semaphore.h>
     
    8485 *
    8586 */
    86 int _mutex_lock_timeout(mutex_t *mtx, uint32_t usec, unsigned int flags)
     87errno_t _mutex_lock_timeout(mutex_t *mtx, uint32_t usec, unsigned int flags)
    8788{
    88         int rc;
     89        errno_t rc;
    8990
    9091        if (mtx->type == MUTEX_PASSIVE && THREAD) {
     
    9596                if (mtx->owner == THREAD) {
    9697                        mtx->nesting++;
    97                         return ESYNCH_OK_ATOMIC;
     98                        return EOK;
    9899                } else {
    99100                        rc = _semaphore_down_timeout(&mtx->sem, usec, flags);
    100                         if (SYNCH_OK(rc)) {
     101                        if (rc == EOK) {
    101102                                mtx->owner = THREAD;
    102103                                mtx->nesting = 1;
     
    119120                        }
    120121                        rc = semaphore_trydown(&mtx->sem);
    121                 } while (SYNCH_FAILED(rc) &&
    122                     !(flags & SYNCH_FLAGS_NON_BLOCKING));
     122                } while (rc != EOK && !(flags & SYNCH_FLAGS_NON_BLOCKING));
    123123                if (deadlock_reported)
    124124                        printf("cpu%u: not deadlocked\n", CPU->id);
Note: See TracChangeset for help on using the changeset viewer.