Improve ipcpipe locking

This commit is contained in:
2025-10-15 23:26:14 +02:00
parent eefff6e492
commit 48231931bd
2 changed files with 7 additions and 1 deletions

View File

@ -15,7 +15,9 @@ int32_t SYSCALL4(sys_ipc_piperead, pid1, pipenum1, buffer1, len1) {
int32_t ret = E_OK;
if (pid == (uint64_t)-1) {
spinlock_acquire(&PROCS.spinlock);
pid = PROCS.current->pid;
spinlock_release(&PROCS.spinlock);
}
spinlock_acquire(&PROCS.spinlock);
@ -59,7 +61,9 @@ int32_t SYSCALL4(sys_ipc_pipewrite, pid1, pipenum1, buffer1, len1) {
int32_t ret = E_OK;
if (pid == (uint64_t)-1) {
spinlock_acquire(&PROCS.spinlock);
pid = PROCS.current->pid;
spinlock_release(&PROCS.spinlock);
}
spinlock_acquire(&PROCS.spinlock);
@ -170,7 +174,9 @@ int32_t SYSCALL4(sys_ipc_pipeconnect, pid1, pipenum1, pid2, pipenum2) {
int32_t ret = E_OK;
if (pid == (uint64_t)-1) {
spinlock_acquire(&PROCS.spinlock);
pid = PROCS.current->pid;
spinlock_release(&PROCS.spinlock);
}
spinlock_acquire(&PROCS.spinlock);