Break when IpcPipe is full
This commit is contained in:
@ -33,7 +33,9 @@ int32_t ipc_pipewrite(IpcPipe *pipe, const uint8_t *const buffer, size_t n) {
|
|||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
spinlock_acquire(&pipe->spinlock);
|
spinlock_acquire(&pipe->spinlock);
|
||||||
for (; i < n; i++) {
|
for (; i < n; i++) {
|
||||||
rbuf_push(&pipe->rbuf, buffer[i]);
|
if (rbuf_push(&pipe->rbuf, buffer[i]) < 0) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
spinlock_release(&pipe->spinlock);
|
spinlock_release(&pipe->spinlock);
|
||||||
return i;
|
return i;
|
||||||
|
|||||||
Reference in New Issue
Block a user