[libbluray-devel] avoid inlining failed warnings: moved mutex init/destroy to mutex.c

hpi1 git at videolan.org
Tue Apr 1 15:01:41 CEST 2014


libbluray | branch: master | hpi1 <hpi1 at anonymous.org> | Tue Apr  1 11:48:02 2014 +0300| [a682a65667ec828c71310d0e756b5b325ec40fc5] | committer: hpi1

avoid inlining failed warnings: moved mutex init/destroy to mutex.c

> http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=a682a65667ec828c71310d0e756b5b325ec40fc5
---

 src/Makefile.am  |    1 +
 src/util/mutex.c |   60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/util/mutex.h |   28 ++++++-------------------
 3 files changed, 67 insertions(+), 22 deletions(-)

diff --git a/src/Makefile.am b/src/Makefile.am
index 31176b3..9daeef9 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -88,6 +88,7 @@ libbluray_la_SOURCES = \
 	util/strutl.h \
 	util/macro.h \
 	util/mutex.h \
+	util/mutex.c \
 	util/time.h \
 	util/logging.c \
 	util/log_control.h \
diff --git a/src/util/mutex.c b/src/util/mutex.c
new file mode 100644
index 0000000..a75fa01
--- /dev/null
+++ b/src/util/mutex.c
@@ -0,0 +1,60 @@
+/*
+ * This file is part of libbluray
+ * Copyright (C) 2010-2014  Petri Hintukainen <phintuka at users.sourceforge.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "mutex.h"
+
+#include "logging.h"
+#include "macro.h"
+
+
+#if defined(_WIN32)
+  /* nothing here */
+#elif defined(HAVE_PTHREAD_H)
+
+#include <pthread.h>
+
+int bd_mutex_init(BD_MUTEX *p)
+{
+    p->owner      = (pthread_t)-1;
+    p->lock_count = 0;
+
+    if (pthread_mutex_init(&p->mutex, NULL)) {
+        BD_DEBUG(DBG_BLURAY|DBG_CRIT, "bd_mutex_init() failed !\n");
+        return -1;
+    }
+
+    return 0;
+}
+
+int bd_mutex_destroy(BD_MUTEX *p)
+{
+    bd_mutex_lock(p);
+    bd_mutex_unlock(p);
+    if (pthread_mutex_destroy(&p->mutex)) {
+        BD_DEBUG(DBG_BLURAY|DBG_CRIT, "bd_mutex_destroy() failed !\n");
+        return -1;
+    }
+    return 0;
+}
+
+#endif /* HAVE_PTHREAD_H */
diff --git a/src/util/mutex.h b/src/util/mutex.h
index 7704b13..cd230d9 100644
--- a/src/util/mutex.h
+++ b/src/util/mutex.h
@@ -1,6 +1,6 @@
 /*
  * This file is part of libbluray
- * Copyright (C) 2010  hpi1
+ * Copyright (C) 2010-2014  Petri Hintukainen <phintuka at users.sourceforge.net>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -57,6 +57,9 @@ typedef CRITICAL_SECTION BD_MUTEX;
 
 #elif defined(HAVE_PTHREAD_H)
 
+#include "logging.h"
+#include "macro.h"
+
 /*
  * recursive mutex
  */
@@ -68,27 +71,8 @@ struct bd_mutex_s {
     pthread_mutex_t mutex;
 };
 
-static inline int bd_mutex_init(BD_MUTEX *p)
-{
-    p->owner      = (pthread_t)-1;
-    p->lock_count = 0;
-
-    if (pthread_mutex_init(&p->mutex, NULL)) {
-        BD_DEBUG(DBG_BLURAY|DBG_CRIT, "bd_mutex_init() failed !\n");
-        return -1;
-    }
-
-    return 0;
-}
-
-static inline int bd_mutex_destroy(BD_MUTEX *p)
-{
-    if (pthread_mutex_destroy(&p->mutex)) {
-        BD_DEBUG(DBG_BLURAY|DBG_CRIT, "bd_mutex_destroy() failed !\n");
-        return -1;
-    }
-    return 0;
-}
+BD_PRIVATE int bd_mutex_init(BD_MUTEX *p);
+BD_PRIVATE int bd_mutex_destroy(BD_MUTEX *p);
 
 static int bd_mutex_lock(BD_MUTEX *p)
 {



More information about the libbluray-devel mailing list