Merge pull request #859 from Kijewski/mutex-trylock-error
core:mutex: allow idle thread to use mutexes
This commit is contained in:
commit
e6d8c6bb99
@ -45,7 +45,7 @@ int mutex_init(struct mutex_t *mutex)
|
|||||||
int mutex_trylock(struct mutex_t *mutex)
|
int mutex_trylock(struct mutex_t *mutex)
|
||||||
{
|
{
|
||||||
DEBUG("%s: trylocking to get mutex. val: %u\n", active_thread->name, mutex->val);
|
DEBUG("%s: trylocking to get mutex. val: %u\n", active_thread->name, mutex->val);
|
||||||
return (atomic_set_return(&mutex->val, thread_pid) == 0);
|
return (atomic_set_return(&mutex->val, 1) == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int mutex_lock(struct mutex_t *mutex)
|
int mutex_lock(struct mutex_t *mutex)
|
||||||
@ -67,7 +67,7 @@ void mutex_wait(struct mutex_t *mutex)
|
|||||||
|
|
||||||
if (mutex->val == 0) {
|
if (mutex->val == 0) {
|
||||||
/* somebody released the mutex. return. */
|
/* somebody released the mutex. return. */
|
||||||
mutex->val = thread_pid;
|
mutex->val = 1;
|
||||||
DEBUG("%s: mutex_wait early out. %u\n", active_thread->name, mutex->val);
|
DEBUG("%s: mutex_wait early out. %u\n", active_thread->name, mutex->val);
|
||||||
restoreIRQ(irqstate);
|
restoreIRQ(irqstate);
|
||||||
return;
|
return;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user