Add an implementation of non-thread-emulated async close of a GIOStream if either of the underlying stream objects support it.
This prevents us from calling close() functions from another thread on an object that may not be expecting that. It also allows us to skip the thread entirely in case our objects support a pure async close.
https://bugzilla.gnome.org/show_bug.cgi?id=741630
c2c0a6a GIOStream: support for unemulated async close()
gio/giostream.c | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 78 insertions(+), 3 deletions(-)
Upstream: git.gnome.org