decoder->data_len = 0;
decoder->error = NULL;
+ g_mutex_init (&decoder->write_lock);
+
return decoder;
}
g_clear_object (&decoder->socket_client);
g_clear_error (&decoder->error);
g_free (decoder->data);
+ g_mutex_clear (&decoder->write_lock);
g_free (decoder);
}
g_return_val_if_fail (buffer != NULL, 0);
g_return_val_if_fail (len > 0, 0);
+ g_mutex_lock (&decoder->write_lock);
+
out = g_io_stream_get_output_stream (G_IO_STREAM (decoder->connection));
if (!g_output_stream_write_all (out, buffer, len, NULL, decoder->cancellable,
&err))
goto send_error;
+ g_mutex_unlock (&decoder->write_lock);
+
return TRUE;
send_error:
}
}
g_clear_error (&err);
+ g_mutex_unlock (&decoder->write_lock);
return FALSE;
}
}