mirror of
https://github.com/drasko/codezero.git
synced 2026-02-04 14:03:16 +01:00
Towards finishing exchange_registers()
- Added mutex_trylock() - Implemented most of exchange_registers() - thread_control() now needs a lock for operations that can modify thread context. - thread_start() does not initialise scheduler flags, now done in thread_create. TODO: - Fork/clone'ed threads should retain their context in tcb, not syscall stack. - exchange_registers() calls in userspace need cleaning up.
This commit is contained in:
@@ -93,6 +93,18 @@ void sem_down(struct mutex *mutex)
|
||||
}
|
||||
}
|
||||
|
||||
/* Non-blocking attempt to lock mutex */
|
||||
int mutex_trylock(struct mutex *mutex)
|
||||
{
|
||||
int success;
|
||||
|
||||
spin_lock(&mutex->slock);
|
||||
success = __mutex_lock(&mutex->lock);
|
||||
spin_unlock(&mutex->slock);
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
void mutex_lock(struct mutex *mutex)
|
||||
{
|
||||
/* NOTE:
|
||||
|
||||
Reference in New Issue
Block a user