[evolution-data-server] Restore e_flag_timed_wait().
- From: Matthew Barnes <mbarnes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] Restore e_flag_timed_wait().
- Date: Thu, 8 Nov 2012 14:01:36 +0000 (UTC)
commit 30dcfe4d336c86f29bd66ff11c2eaf18a318a728
Author: Matthew Barnes <mbarnes redhat com>
Date: Thu Nov 8 08:30:22 2012 -0500
Restore e_flag_timed_wait().
Just deprecate the function, don't delete it. GTimeVal isn't going
away any time soon. It's not worth a libedataserver soname bump.
configure.ac | 2 +-
.../libedataserver/libedataserver-sections.txt | 3 +-
libedataserver/e-flag.c | 38 ++++++++++++++++++++
libedataserver/e-flag.h | 5 +++
4 files changed, 46 insertions(+), 2 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index f1d9dd3..ab319f8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -87,7 +87,7 @@ AC_SUBST(SOURCES_DBUS_SERVICE_NAME)
dnl ******************************
dnl Libtool versioning
dnl ******************************
-LIBEDATASERVER_CURRENT=18
+LIBEDATASERVER_CURRENT=17
LIBEDATASERVER_REVISION=0
LIBEDATASERVER_AGE=0
diff --git a/docs/reference/libedataserver/libedataserver-sections.txt b/docs/reference/libedataserver/libedataserver-sections.txt
index fd2df4c..b39afd5 100644
--- a/docs/reference/libedataserver/libedataserver-sections.txt
+++ b/docs/reference/libedataserver/libedataserver-sections.txt
@@ -128,8 +128,9 @@ e_flag_is_set
e_flag_set
e_flag_clear
e_flag_wait
-e_flag_timed_wait
+e_flag_wait_until
e_flag_free
+e_flag_timed_wait
</SECTION>
<SECTION>
diff --git a/libedataserver/e-flag.c b/libedataserver/e-flag.c
index 05008e4..55c097d 100644
--- a/libedataserver/e-flag.c
+++ b/libedataserver/e-flag.c
@@ -132,6 +132,44 @@ e_flag_wait (EFlag *flag)
}
/**
+ * e_flag_timed_wait:
+ * @flag: an #EFlag
+ * @abs_time: a #GTimeVal, determining the final time
+ *
+ * Blocks until @flag is set, or until the time specified by @abs_time.
+ * If @flag is already set, the function returns immediately. The return
+ * value indicates the state of @flag after waiting.
+ *
+ * If @abs_time is %NULL, e_flag_timed_wait() acts like e_flag_wait().
+ *
+ * To easily calculate @abs_time, a combination of g_get_current_time() and
+ * g_time_val_add() can be used.
+ *
+ * Returns: %TRUE if @flag is now set
+ *
+ * Since: 1.12
+ *
+ * Deprecated: 3.8: Use e_flag_wait_until() instead.
+ **/
+gboolean
+e_flag_timed_wait (EFlag *flag,
+ GTimeVal *abs_time)
+{
+ gboolean is_set;
+
+ g_return_val_if_fail (flag != NULL, FALSE);
+
+ g_mutex_lock (&flag->mutex);
+ while (!flag->is_set)
+ if (!g_cond_timed_wait (&flag->cond, &flag->mutex, abs_time))
+ break;
+ is_set = flag->is_set;
+ g_mutex_unlock (&flag->mutex);
+
+ return is_set;
+}
+
+/**
* e_flag_wait_until:
* @flag: an #EFlag
* @end_time: the monotonic time to wait until
diff --git a/libedataserver/e-flag.h b/libedataserver/e-flag.h
index 43d4aaa..30e2e1c 100644
--- a/libedataserver/e-flag.h
+++ b/libedataserver/e-flag.h
@@ -50,6 +50,11 @@ gboolean e_flag_wait_until (EFlag *flag,
gint64 end_time);
void e_flag_free (EFlag *flag);
+#ifndef EDS_DISABLE_DEPRECATED
+gboolean e_flag_timed_wait (EFlag *flag,
+ GTimeVal *abs_time);
+#endif /* EDS_DISABLE_DEPRECATED */
+
G_END_DECLS
#endif /* E_FLAG_H */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]