mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-08-02 07:23:41 +02:00
Release 2.21.0
This commit is contained in:
@@ -483,7 +483,7 @@ g_cancellable_cancel (GCancellable *cancellable)
|
||||
gboolean cancel;
|
||||
|
||||
cancel = FALSE;
|
||||
|
||||
|
||||
G_LOCK(cancellable);
|
||||
if (cancellable != NULL &&
|
||||
!cancellable->cancelled)
|
||||
@@ -503,14 +503,14 @@ g_cancellable_cancel (GCancellable *cancellable)
|
||||
g_signal_emit (cancellable, signals[CANCELLED], 0);
|
||||
|
||||
G_LOCK(cancellable);
|
||||
|
||||
|
||||
cancellable->cancelled_running = FALSE;
|
||||
if (cancellable->cancelled_running_waiting)
|
||||
g_cond_broadcast (cancellable_cond);
|
||||
cancellable->cancelled_running_waiting = FALSE;
|
||||
|
||||
|
||||
G_UNLOCK(cancellable);
|
||||
|
||||
|
||||
g_object_unref (cancellable);
|
||||
}
|
||||
}
|
||||
@@ -524,8 +524,8 @@ g_cancellable_cancel (GCancellable *cancellable)
|
||||
*
|
||||
* Convenience function to connect to the #GCancellable::cancelled
|
||||
* signal. Also handles the race condition that may happen
|
||||
* if the cancellable is cancelled right before connecting.
|
||||
*
|
||||
* if the cancellable is cancelled right before connecting.
|
||||
*
|
||||
* @callback is called at most once, either directly at the
|
||||
* time of the connect if @cancellable is already cancelled,
|
||||
* or when @cancellable is cancelled in some thread.
|
||||
@@ -535,11 +535,11 @@ g_cancellable_cancel (GCancellable *cancellable)
|
||||
* cancelled.
|
||||
*
|
||||
* See #GCancellable::cancelled for details on how to use this.
|
||||
*
|
||||
*
|
||||
* Returns: The id of the signal handler or 0 if @cancellable has already
|
||||
* been cancelled.
|
||||
*
|
||||
* Since: 2.20
|
||||
* Since: 2.22
|
||||
*/
|
||||
gulong
|
||||
g_cancellable_connect (GCancellable *cancellable,
|
||||
@@ -550,30 +550,30 @@ g_cancellable_connect (GCancellable *cancellable,
|
||||
gulong id;
|
||||
|
||||
g_return_val_if_fail (G_IS_CANCELLABLE (cancellable), 0);
|
||||
|
||||
G_LOCK(cancellable);
|
||||
|
||||
|
||||
G_LOCK (cancellable);
|
||||
|
||||
if (cancellable->cancelled)
|
||||
{
|
||||
void (*_callback) (GCancellable *cancellable,
|
||||
gpointer user_data);
|
||||
|
||||
gpointer user_data);
|
||||
|
||||
_callback = (void *)callback;
|
||||
id = 0;
|
||||
|
||||
|
||||
_callback (cancellable, data);
|
||||
|
||||
|
||||
if (data_destroy_func)
|
||||
data_destroy_func (data);
|
||||
data_destroy_func (data);
|
||||
}
|
||||
else
|
||||
{
|
||||
id = g_signal_connect_data (cancellable, "cancelled",
|
||||
callback, data,
|
||||
(GClosureNotify) data_destroy_func,
|
||||
0);
|
||||
callback, data,
|
||||
(GClosureNotify) data_destroy_func,
|
||||
0);
|
||||
}
|
||||
G_UNLOCK(cancellable);
|
||||
G_UNLOCK (cancellable);
|
||||
|
||||
return id;
|
||||
}
|
||||
@@ -585,17 +585,17 @@ g_cancellable_connect (GCancellable *cancellable,
|
||||
*
|
||||
* Disconnects a handler from an cancellable instance similar to
|
||||
* g_signal_handler_disconnect() but ensures that once this
|
||||
* function returns the handler will not run anymore in any thread.
|
||||
* function returns the handler will not run anymore in any thread.
|
||||
*
|
||||
* This avoids a race condition where a thread cancels at the
|
||||
* same time as the cancellable operation is finished and the
|
||||
* same time as the cancellable operation is finished and the
|
||||
* signal handler is removed. See #GCancellable::cancelled for
|
||||
* details on how to use this.
|
||||
*
|
||||
* If @cancellable is %NULL or @handler_id is %0 this function does
|
||||
* nothing.
|
||||
*
|
||||
* Since: 2.20
|
||||
*
|
||||
* Since: 2.22
|
||||
*/
|
||||
void
|
||||
g_cancellable_disconnect (GCancellable *cancellable,
|
||||
@@ -604,16 +604,16 @@ g_cancellable_disconnect (GCancellable *cancellable,
|
||||
if (handler_id == 0 || cancellable == NULL)
|
||||
return;
|
||||
|
||||
G_LOCK(cancellable);
|
||||
G_LOCK (cancellable);
|
||||
while (cancellable->cancelled_running)
|
||||
{
|
||||
cancellable->cancelled_running_waiting = TRUE;
|
||||
cancellable->cancelled_running_waiting = TRUE;
|
||||
g_cond_wait (cancellable_cond,
|
||||
g_static_mutex_get_mutex (& G_LOCK_NAME (cancellable)));
|
||||
g_static_mutex_get_mutex (& G_LOCK_NAME (cancellable)));
|
||||
}
|
||||
|
||||
|
||||
g_signal_handler_disconnect (cancellable, handler_id);
|
||||
G_UNLOCK(cancellable);
|
||||
G_UNLOCK (cancellable);
|
||||
}
|
||||
|
||||
#define __G_CANCELLABLE_C__
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
/* GIO - GLib Input, Output and Streaming Library
|
||||
*
|
||||
*
|
||||
* Copyright (C) 2008 Red Hat, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
@@ -56,7 +56,7 @@
|
||||
* #GNetworkAddress and #GNetworkService provide wrappers around
|
||||
* #GResolver functionality that also implement #GSocketConnectable,
|
||||
* making it easy to connect to a remote host/service.
|
||||
**/
|
||||
*/
|
||||
|
||||
/**
|
||||
* GResolver:
|
||||
@@ -89,7 +89,6 @@ g_resolver_class_init (GResolverClass *resolver_class)
|
||||
static void
|
||||
g_resolver_init (GResolver *resolver)
|
||||
{
|
||||
;
|
||||
}
|
||||
|
||||
static GResolver *default_resolver;
|
||||
@@ -141,7 +140,7 @@ g_resolver_get_default (void)
|
||||
* itself as the default resolver for all later code to use.
|
||||
*
|
||||
* Since: 2.22
|
||||
**/
|
||||
*/
|
||||
void
|
||||
g_resolver_set_default (GResolver *resolver)
|
||||
{
|
||||
@@ -184,7 +183,7 @@ g_resolver_set_default (GResolver *resolver)
|
||||
* done with it. (You can use g_resolver_free_addresses() to do this.)
|
||||
*
|
||||
* Since: 2.22
|
||||
**/
|
||||
*/
|
||||
GList *
|
||||
g_resolver_lookup_by_name (GResolver *resolver,
|
||||
const gchar *hostname,
|
||||
@@ -223,11 +222,11 @@ g_resolver_lookup_by_name (GResolver *resolver,
|
||||
*
|
||||
* Begins asynchronously resolving @hostname to determine its
|
||||
* associated IP address(es), and eventually calls @callback, which
|
||||
* must call g_resolver_lookup_by_name_finish() to get the result. See
|
||||
* g_resolver_lookup_by_name() for more details.
|
||||
* must call g_resolver_lookup_by_name_finish() to get the result.
|
||||
* See g_resolver_lookup_by_name() for more details.
|
||||
*
|
||||
* Since: 2.22
|
||||
**/
|
||||
*/
|
||||
void
|
||||
g_resolver_lookup_by_name_async (GResolver *resolver,
|
||||
const gchar *hostname,
|
||||
@@ -285,7 +284,7 @@ g_resolver_lookup_by_name_async (GResolver *resolver,
|
||||
* g_resolver_lookup_by_name() for more details.
|
||||
*
|
||||
* Since: 2.22
|
||||
**/
|
||||
*/
|
||||
GList *
|
||||
g_resolver_lookup_by_name_finish (GResolver *resolver,
|
||||
GAsyncResult *result,
|
||||
@@ -325,7 +324,7 @@ g_resolver_lookup_by_name_finish (GResolver *resolver,
|
||||
* by hand.)
|
||||
*
|
||||
* Since: 2.22
|
||||
**/
|
||||
*/
|
||||
void
|
||||
g_resolver_free_addresses (GList *addresses)
|
||||
{
|
||||
@@ -357,7 +356,7 @@ g_resolver_free_addresses (GList *addresses)
|
||||
* form), or %NULL on error.
|
||||
*
|
||||
* Since: 2.22
|
||||
**/
|
||||
*/
|
||||
gchar *
|
||||
g_resolver_lookup_by_address (GResolver *resolver,
|
||||
GInetAddress *address,
|
||||
@@ -384,7 +383,7 @@ g_resolver_lookup_by_address (GResolver *resolver,
|
||||
* call g_resolver_lookup_by_address_finish() to get the final result.
|
||||
*
|
||||
* Since: 2.22
|
||||
**/
|
||||
*/
|
||||
void
|
||||
g_resolver_lookup_by_address_async (GResolver *resolver,
|
||||
GInetAddress *address,
|
||||
@@ -416,7 +415,7 @@ g_resolver_lookup_by_address_async (GResolver *resolver,
|
||||
* form), or %NULL on error.
|
||||
*
|
||||
* Since: 2.22
|
||||
**/
|
||||
*/
|
||||
gchar *
|
||||
g_resolver_lookup_by_address_finish (GResolver *resolver,
|
||||
GAsyncResult *result,
|
||||
@@ -489,7 +488,7 @@ g_resolver_get_service_rrname (const char *service,
|
||||
* (You can use g_resolver_free_targets() to do this.)
|
||||
*
|
||||
* Since: 2.22
|
||||
**/
|
||||
*/
|
||||
GList *
|
||||
g_resolver_lookup_service (GResolver *resolver,
|
||||
const gchar *service,
|
||||
@@ -532,7 +531,7 @@ g_resolver_lookup_service (GResolver *resolver,
|
||||
* details.
|
||||
*
|
||||
* Since: 2.22
|
||||
**/
|
||||
*/
|
||||
void
|
||||
g_resolver_lookup_service_async (GResolver *resolver,
|
||||
const gchar *service,
|
||||
@@ -574,7 +573,7 @@ g_resolver_lookup_service_async (GResolver *resolver,
|
||||
* g_resolver_lookup_service() for more details.
|
||||
*
|
||||
* Since: 2.22
|
||||
**/
|
||||
*/
|
||||
GList *
|
||||
g_resolver_lookup_service_finish (GResolver *resolver,
|
||||
GAsyncResult *result,
|
||||
@@ -604,7 +603,7 @@ g_resolver_lookup_service_finish (GResolver *resolver,
|
||||
* results by hand.)
|
||||
*
|
||||
* Since: 2.22
|
||||
**/
|
||||
*/
|
||||
void
|
||||
g_resolver_free_targets (GList *targets)
|
||||
{
|
||||
@@ -617,13 +616,13 @@ g_resolver_free_targets (GList *targets)
|
||||
|
||||
/**
|
||||
* g_resolver_error_quark:
|
||||
*
|
||||
*
|
||||
* Gets the #GResolver Error Quark.
|
||||
*
|
||||
* Return value: a #GQuark.
|
||||
*
|
||||
* Since: 2.22
|
||||
**/
|
||||
*/
|
||||
GQuark
|
||||
g_resolver_error_quark (void)
|
||||
{
|
||||
|
@@ -97,7 +97,7 @@ g_srv_target_get_type (void)
|
||||
* Return value: a new #GSrvTarget.
|
||||
*
|
||||
* Since: 2.22
|
||||
**/
|
||||
*/
|
||||
GSrvTarget *
|
||||
g_srv_target_new (const gchar *hostname,
|
||||
guint16 port,
|
||||
@@ -123,7 +123,7 @@ g_srv_target_new (const gchar *hostname,
|
||||
* Return value: a copy of @target
|
||||
*
|
||||
* Since: 2.22
|
||||
**/
|
||||
*/
|
||||
GSrvTarget *
|
||||
g_srv_target_copy (GSrvTarget *target)
|
||||
{
|
||||
@@ -138,7 +138,7 @@ g_srv_target_copy (GSrvTarget *target)
|
||||
* Frees @target
|
||||
*
|
||||
* Since: 2.22
|
||||
**/
|
||||
*/
|
||||
void
|
||||
g_srv_target_free (GSrvTarget *target)
|
||||
{
|
||||
@@ -158,7 +158,7 @@ g_srv_target_free (GSrvTarget *target)
|
||||
* Return value: @target's hostname
|
||||
*
|
||||
* Since: 2.22
|
||||
**/
|
||||
*/
|
||||
const gchar *
|
||||
g_srv_target_get_hostname (GSrvTarget *target)
|
||||
{
|
||||
@@ -174,7 +174,7 @@ g_srv_target_get_hostname (GSrvTarget *target)
|
||||
* Return value: @target's port
|
||||
*
|
||||
* Since: 2.22
|
||||
**/
|
||||
*/
|
||||
guint16
|
||||
g_srv_target_get_port (GSrvTarget *target)
|
||||
{
|
||||
@@ -192,7 +192,7 @@ g_srv_target_get_port (GSrvTarget *target)
|
||||
* Return value: @target's priority
|
||||
*
|
||||
* Since: 2.22
|
||||
**/
|
||||
*/
|
||||
guint16
|
||||
g_srv_target_get_priority (GSrvTarget *target)
|
||||
{
|
||||
@@ -210,7 +210,7 @@ g_srv_target_get_priority (GSrvTarget *target)
|
||||
* Return value: @target's weight
|
||||
*
|
||||
* Since: 2.22
|
||||
**/
|
||||
*/
|
||||
guint16
|
||||
g_srv_target_get_weight (GSrvTarget *target)
|
||||
{
|
||||
@@ -249,7 +249,7 @@ compare_target (gconstpointer a, gconstpointer b)
|
||||
* Return value: the head of the sorted list.
|
||||
*
|
||||
* Since: 2.22
|
||||
**/
|
||||
*/
|
||||
GList *
|
||||
g_srv_target_list_sort (GList *targets)
|
||||
{
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
/* GIO - GLib Input, Output and Streaming Library
|
||||
*
|
||||
*
|
||||
* Copyright (C) 2008 Red Hat, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
@@ -44,10 +44,8 @@ static void
|
||||
g_threaded_resolver_init (GThreadedResolver *gtr)
|
||||
{
|
||||
if (g_thread_supported ())
|
||||
{
|
||||
gtr->thread_pool = g_thread_pool_new (threaded_resolver_thread, gtr,
|
||||
-1, FALSE, NULL);
|
||||
}
|
||||
gtr->thread_pool = g_thread_pool_new (threaded_resolver_thread, gtr,
|
||||
-1, FALSE, NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -311,7 +309,7 @@ threaded_resolver_thread (gpointer thread_data,
|
||||
req->resolve_func (req, &req->error);
|
||||
g_threaded_resolver_request_complete (req, FALSE);
|
||||
g_threaded_resolver_request_unref (req);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
resolve_sync (GThreadedResolver *gtr,
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
|
||||
|
||||
/* GIO - GLib Input, Output and Streaming Library
|
||||
*
|
||||
*
|
||||
* Copyright (C) 2008 Red Hat, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
|
Reference in New Issue
Block a user