From 16f362706b40e1d809be4505e3c7dd1133906809 Mon Sep 17 00:00:00 2001 From: Simon McVittie Date: Fri, 10 Jun 2011 17:38:14 +0100 Subject: [PATCH 1/2] Add and use DBUS_TIMEOUT_INFINITE and DBUS_TIMEOUT_USE_DEFAULT The documentation claimed that INT_MAX (whatever that means) meant the default, but the value that has actually always been checked for is 0x7fffffff (aka INT32_MAX on the competent platforms we sadly don't restrict our portability to), so we should use that. (In practice D-Bus probably never worked on platforms where int wasn't 32 bits, though.) --- dbus/dbus-connection.c | 13 +++++++++---- dbus/dbus-pending-call.c | 26 ++++++++++++++++++++++++-- dbus/dbus-pending-call.h | 3 +++ 3 files changed, 36 insertions(+), 6 deletions(-) diff --git a/dbus/dbus-connection.c b/dbus/dbus-connection.c index d0aca25..d06df8e 100644 --- a/dbus/dbus-connection.c +++ b/dbus/dbus-connection.c @@ -3361,8 +3361,9 @@ reply_handler_timeout (void *data) * * If -1 is passed for the timeout, a sane default timeout is used. -1 * is typically the best value for the timeout for this reason, unless - * you want a very short or very long timeout. If INT_MAX is passed for - * the timeout, no timeout will be set and the call will block forever. + * you want a very short or very long timeout. If #DBUS_TIMEOUT_INFINITE is + * passed for the timeout, no timeout will be set and the call will block + * forever. * * @warning if the connection is disconnected or you try to send Unix * file descriptors on a connection that does not support them, the @@ -3374,7 +3375,9 @@ reply_handler_timeout (void *data) * object, or #NULL if connection is disconnected or when you try to * send Unix file descriptors on a connection that does not support * them. - * @param timeout_milliseconds timeout in milliseconds, -1 for default or INT_MAX for no timeout + * @param timeout_milliseconds timeout in milliseconds, -1 (or + * #DBUS_TIMEOUT_USE_DEFAULT) for default or #DBUS_TIMEOUT_INFINITE for no + * timeout * @returns #FALSE if no memory, #TRUE otherwise. * */ @@ -3507,7 +3510,9 @@ dbus_connection_send_with_reply (DBusConnection *connection, * * @param connection the connection * @param message the message to send - * @param timeout_milliseconds timeout in milliseconds, -1 for default or INT_MAX for no timeout. + * @param timeout_milliseconds timeout in milliseconds, -1 (or + * #DBUS_TIMEOUT_USE_DEFAULT) for default or #DBUS_TIMEOUT_INFINITE for no + * timeout * @param error return location for error message * @returns the message that is the reply or #NULL with an error code if the * function fails. diff --git a/dbus/dbus-pending-call.c b/dbus/dbus-pending-call.c index e1de656..70392b7 100644 --- a/dbus/dbus-pending-call.c +++ b/dbus/dbus-pending-call.c @@ -84,7 +84,9 @@ static dbus_int32_t notify_user_data_slot = -1; * Creates a new pending reply object. * * @param connection connection where reply will arrive - * @param timeout_milliseconds length of timeout, -1 for default, INT_MAX for no timeout + * @param timeout_milliseconds length of timeout, -1 (or + * #DBUS_TIMEOUT_USE_DEFAULT) for default, + * #DBUS_TIMEOUT_INFINITE for no timeout * @param timeout_handler timeout handler, takes pending call as data * @returns a new #DBusPendingCall or #NULL if no memory. */ @@ -112,7 +114,7 @@ _dbus_pending_call_new_unlocked (DBusConnection *connection, return NULL; } - if (timeout_milliseconds != _DBUS_INT_MAX) + if (timeout_milliseconds != DBUS_TIMEOUT_INFINITE) { timeout = _dbus_timeout_new (timeout_milliseconds, timeout_handler, @@ -516,6 +518,26 @@ _dbus_pending_call_set_data_unlocked (DBusPendingCall *pending, */ /** + * @def DBUS_TIMEOUT_INFINITE + * + * An integer constant representing an infinite timeout. This has the + * numeric value 0x7fffffff (the largest 32-bit signed integer). + * + * For source compatibility with D-Bus versions earlier than 1.4.12, use + * 0x7fffffff, or INT32_MAX (assuming your platform has it). + */ + +/** + * @def DBUS_TIMEOUT_USE_DEFAULT + * + * An integer constant representing a request to use the default timeout. + * This has numeric value -1. + * + * For source compatibility with D-Bus versions earlier than 1.4.12, use a + * literal -1. + */ + +/** * @typedef DBusPendingCall * * Opaque data type representing a message pending. diff --git a/dbus/dbus-pending-call.h b/dbus/dbus-pending-call.h index 8f64b8b..8a37ec0 100644 --- a/dbus/dbus-pending-call.h +++ b/dbus/dbus-pending-call.h @@ -38,6 +38,9 @@ DBUS_BEGIN_DECLS * @{ */ +#define DBUS_TIMEOUT_INFINITE ((int) 0x7fffffff) +#define DBUS_TIMEOUT_USE_DEFAULT (-1) + DBUS_EXPORT DBusPendingCall* dbus_pending_call_ref (DBusPendingCall *pending); DBUS_EXPORT -- 1.7.5.3