Call sync close function directly in async implementation

The g_io_stream_wrapper fails since there is already an outstanding
operation (the async close).
This commit is contained in:
Alexander Larsson 2009-05-20 11:18:34 +02:00
parent fdfdec36d0
commit f061765e54

View File

@ -291,11 +291,15 @@ g_socket_connection_close_async (GIOStream *stream,
gpointer user_data)
{
GSimpleAsyncResult *res;
GIOStreamClass *class;
GError *error;
class = G_IO_STREAM_GET_CLASS (stream);
/* socket close is not blocked, just do it! */
error = NULL;
if (!g_io_stream_close (stream, cancellable, &error))
if (class->close_fn &&
!class->close_fn (stream, cancellable, &error))
{
g_simple_async_report_gerror_in_idle (G_OBJECT (stream),
callback, user_data,