libobs/util: Retry pipe writes to avoid short-write failures
Previously, any short write would be treated elsewhere as a failure. The easiest solution is to have pipe_write() automatically retry until either it's written everything, or it couldn't write anything at all.
This commit is contained in:
parent
704d2c9e11
commit
664acef494
@ -93,5 +93,12 @@ size_t os_process_pipe_write(os_process_pipe_t *pp, const uint8_t *data,
|
||||
return 0;
|
||||
}
|
||||
|
||||
return fwrite(data, 1, len, pp->file);
|
||||
size_t written = 0;
|
||||
while (written < len) {
|
||||
size_t ret = fwrite(data + written, 1, len - written, pp->file);
|
||||
if (!ret)
|
||||
return written;
|
||||
written += ret;
|
||||
}
|
||||
return written;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user