diff --git a/src/sys/kernel/ubthread.c b/src/sys/kernel/ubthread.c index 0eba717..69abd19 100644 --- a/src/sys/kernel/ubthread.c +++ b/src/sys/kernel/ubthread.c @@ -123,11 +123,15 @@ ubthread_cond_t ubcond = *cond; ubthread_mutex_t ubmutex = *mutex; uInt32 enterTime = systemVitals->sysUptime+20; + atomic_exchange(&ubmutex->lock, false); + kprintf("timedwait!"); while (enterTime > systemVitals->sysUptime) { if (ubcond->lock == false) break; sched_yield(); } - atomic_exchange(&ubmutex->lock, false); + //atomic_exchange(&ubmutex->lock, false); + atomic_exchange(&ubmutex->lock, true); + kprintf("timedwait END!"); //ubmutex->locked = UNLOCKED; return(0x0); }