mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-10-29 21:58:20 +00:00
kernel: finish work of removing interruptible mutexes
This commit is contained in:
@@ -35,7 +35,7 @@ syscallret_t syscall_fork(context_t *ctx) {
|
||||
if (ret.errno)
|
||||
goto cleanup;
|
||||
|
||||
MUTEX_ACQUIRE(&proc->mutex, false);
|
||||
MUTEX_ACQUIRE(&proc->mutex);
|
||||
|
||||
nproc->parent = proc;
|
||||
nproc->sibling = proc->child;
|
||||
|
||||
@@ -72,7 +72,7 @@ syscallret_t syscall_futex(context_t *, uint32_t *futexp, int op, uint32_t value
|
||||
if (ret.errno)
|
||||
return ret;
|
||||
|
||||
MUTEX_ACQUIRE(&futexmutex, false);
|
||||
MUTEX_ACQUIRE(&futexmutex);
|
||||
|
||||
bool doleave = true;
|
||||
uint32_t word;
|
||||
@@ -130,7 +130,7 @@ syscallret_t syscall_futex(context_t *, uint32_t *futexp, int op, uint32_t value
|
||||
if (desc.event)
|
||||
revents = desc.event->revents;
|
||||
|
||||
MUTEX_ACQUIRE(&futexmutex, false);
|
||||
MUTEX_ACQUIRE(&futexmutex);
|
||||
|
||||
if (revents == 0 || ret.errno == EINTR) {
|
||||
// timed out or interrupted
|
||||
|
||||
@@ -85,7 +85,7 @@ syscallret_t syscall_openat(context_t *context, int dirfd, char *path, int flags
|
||||
goto cleanup;
|
||||
|
||||
if (vnode->type == V_TYPE_REGULAR && (flags & O_TRUNC) && (flags & FILE_WRITE)) {
|
||||
MUTEX_ACQUIRE(&vnode->size_lock, false);
|
||||
MUTEX_ACQUIRE(&vnode->size_lock);
|
||||
VOP_LOCK(vnode);
|
||||
|
||||
ret.errno = VOP_RESIZE(vnode, 0, ¤t_thread()->proc->cred);
|
||||
|
||||
@@ -17,7 +17,7 @@ syscallret_t syscall_print(context_t *context, char *message) {
|
||||
initialized = true;
|
||||
}
|
||||
|
||||
MUTEX_ACQUIRE(&mutex, false);
|
||||
MUTEX_ACQUIRE(&mutex);
|
||||
arch_e9_puts(message);
|
||||
arch_e9_putc('\n');
|
||||
MUTEX_RELEASE(&mutex);
|
||||
|
||||
@@ -36,7 +36,7 @@ syscallret_t syscall_getitimer(context_t *context, int which, itimerval_t *value
|
||||
return ret;
|
||||
}
|
||||
|
||||
MUTEX_ACQUIRE(¤t_thread()->proc->timer.mutex, false);
|
||||
MUTEX_ACQUIRE(¤t_thread()->proc->timer.mutex);
|
||||
|
||||
uintmax_t oldremaining, oldrepeat;
|
||||
itimer_pause(itimer, &oldremaining, &oldrepeat);
|
||||
@@ -76,7 +76,7 @@ syscallret_t syscall_setitimer(context_t *context, int which, itimerval_t *unew,
|
||||
return ret;
|
||||
}
|
||||
|
||||
MUTEX_ACQUIRE(¤t_thread()->proc->timer.mutex, false);
|
||||
MUTEX_ACQUIRE(¤t_thread()->proc->timer.mutex);
|
||||
uintmax_t oldremaining, oldrepeat;
|
||||
itimer_pause(itimer, &oldremaining, &oldrepeat);
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ syscallret_t syscall_setsockopt(context_t *, int fd, int level, int optname, voi
|
||||
socket_t *socket = SOCKFS_SOCKET_FROM_NODE(file->vnode);
|
||||
|
||||
|
||||
MUTEX_ACQUIRE(&socket->mutex, false);
|
||||
MUTEX_ACQUIRE(&socket->mutex);
|
||||
switch (optname) {
|
||||
case SO_BINDTODEVICE: {
|
||||
if (val) {
|
||||
|
||||
@@ -17,7 +17,7 @@ syscallret_t syscall_ftruncate(int fd, size_t size) {
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
MUTEX_ACQUIRE(&file->vnode->size_lock, false);
|
||||
MUTEX_ACQUIRE(&file->vnode->size_lock);
|
||||
VOP_LOCK(file->vnode);
|
||||
|
||||
ret.errno = VOP_RESIZE(file->vnode, size, ¤t_thread()->proc->cred);
|
||||
|
||||
@@ -21,7 +21,7 @@ syscallret_t syscall_waitpid(context_t *context, pid_t pid, int *status, int opt
|
||||
|
||||
thread_t *thread = current_thread();
|
||||
proc_t *proc = thread->proc;
|
||||
MUTEX_ACQUIRE(&proc->mutex, false);
|
||||
MUTEX_ACQUIRE(&proc->mutex);
|
||||
|
||||
proc_t *prev = NULL;
|
||||
proc_t *iterator = proc->child;
|
||||
@@ -53,7 +53,7 @@ syscallret_t syscall_waitpid(context_t *context, pid_t pid, int *status, int opt
|
||||
ret.errno = EINTR;
|
||||
return ret;
|
||||
}
|
||||
MUTEX_ACQUIRE(&proc->mutex, false);
|
||||
MUTEX_ACQUIRE(&proc->mutex);
|
||||
prev = NULL;
|
||||
iterator = proc->child;
|
||||
desired = NULL; // set as null to be certain another thread didn't get it
|
||||
|
||||
Reference in New Issue
Block a user