GOutputStream: Use async read/write of streams in splice_async()
There are some corner cases where using the sync version of read/write in a thread could cause thread-safety issues. In these cases it's possible to override the output stream's splice_async() function, but for input streams one would need to do some acrobatics to stay thread-safe. Alternatively, some implementations may not even override their sync read/write functions. This patch refactors the default splice_async() implementation to call the sync read and write functions in a thread only when both async versions are thread-based. When one or both are non-threaded, it calls the virtual write_async() and read_async() functions of the involved streams within the same thread. https://bugzilla.gnome.org/show_bug.cgi?id=691581
parent
87e5617a
Please register or sign in to comment