Use _mutex_win32.h on Windows.
authordooglus <dooglus@1f10aa63-cdf2-0310-b900-c93c546f37ac>
Sat, 23 Feb 2008 11:09:53 +0000 (11:09 +0000)
committerdooglus <dooglus@1f10aa63-cdf2-0310-b900-c93c546f37ac>
Sat, 23 Feb 2008 11:09:53 +0000 (11:09 +0000)
git-svn-id: http://svn.voria.com/code@1807 1f10aa63-cdf2-0310-b900-c93c546f37ac

ETL/trunk/ETL/Makefile.am
ETL/trunk/ETL/_handle.h
ETL/trunk/ETL/_mutex_pthreads_simple.h [new file with mode: 0644]
ETL/trunk/ETL/_mutex_simple.h [deleted file]
ETL/trunk/ETL/handle
ETL/trunk/ETL/mutex

index 997054a..68ccdda 100644 (file)
@@ -6,7 +6,7 @@ CLEANFILES=$(top_builddir)/ETL/etl_profile.h
 
 etldir = $(includedir)/ETL
 
-etl_HEADERS= value _value.h rect _rect.h misc _misc.h ref_count _ref_count.h angle fastangle handle ipc thread fixed random clock hermite calculus stringf trivial spline _stringf.h _bspline.h _calculus.h _mutex_null.h _hermite.h _curve_func.h _clock_base.h _clock_system.h _clock_gettimeofday.h _random.h _angle.h _fastangle.h _curve.h _handle.h _thread.h _mutex_pthreads.h _mutex_win32.h _condition.h _rwlock.h smach _smach.h _trivial.h _fixed.h etl_config.h $(top_builddir)/ETL/etl_profile.h _fastangle_tables.h bezier _bezier.h _bezier_angle.h _status.h status pen _pen.h boxblur _boxblur.h gaussian _gaussian.h surface _surface.h smart_ptr _smart_ptr.h _clock_win32hpcount.h mutex _mutex_simple.h
+etl_HEADERS= value _value.h rect _rect.h misc _misc.h ref_count _ref_count.h angle fastangle handle ipc thread fixed random clock hermite calculus stringf trivial spline _stringf.h _bspline.h _calculus.h _mutex_null.h _hermite.h _curve_func.h _clock_base.h _clock_system.h _clock_gettimeofday.h _random.h _angle.h _fastangle.h _curve.h _handle.h _thread.h _mutex_pthreads.h _mutex_win32.h _condition.h _rwlock.h smach _smach.h _trivial.h _fixed.h etl_config.h $(top_builddir)/ETL/etl_profile.h _fastangle_tables.h bezier _bezier.h _bezier_angle.h _status.h status pen _pen.h boxblur _boxblur.h gaussian _gaussian.h surface _surface.h smart_ptr _smart_ptr.h _clock_win32hpcount.h mutex _mutex_pthreads_simple.h
 
 $(top_builddir)/ETL/etl_profile.h:$(top_builddir)/ETL/etl_profile_.h
        sed "s/PACKAGE/ETL/g;" < $(top_builddir)/ETL/etl_profile_.h > $(top_builddir)/ETL/etl_profile.h
index 862c914..0137f8f 100644 (file)
@@ -6,7 +6,7 @@
 **
 **     \legal
 **     Copyright (c) 2002 Robert B. Quattlebaum Jr.
-**     Copyright (c) 2007 Chris Moore
+**     Copyright (c) 2007, 2008 Chris Moore
 **
 **     This package is free software; you can redistribute it and/or
 **     modify it under the terms of the GNU General Public License as
 
 /* === H E A D E R S ======================================================= */
 
-// include the next line in an attempt to increase stability
-#define ETL_LOCK_REFCOUNTS
-
 #include <cassert>
 
-#ifdef ETL_LOCK_REFCOUNTS
-#  include "_mutex_simple.h"
-#endif
-
 /* === M A C R O S ========================================================= */
 
 /* === T Y P E D E F S ===================================================== */
diff --git a/ETL/trunk/ETL/_mutex_pthreads_simple.h b/ETL/trunk/ETL/_mutex_pthreads_simple.h
new file mode 100644 (file)
index 0000000..d95b327
--- /dev/null
@@ -0,0 +1,64 @@
+/*! ========================================================================
+** Extended Template and Library
+** Mutex Abstraction Class Implementation
+** $Id$
+**
+** Copyright (c) 2002 Robert B. Quattlebaum Jr.
+** Copyright (c) 2008 Chris Moore
+**
+** This package is free software; you can redistribute it and/or
+** modify it under the terms of the GNU General Public License as
+** published by the Free Software Foundation; either version 2 of
+** the License, or (at your option) any later version.
+**
+** This package 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
+** General Public License for more details.
+**
+** === N O T E S ===========================================================
+**
+** This is an internal header file, included by other ETL headers.
+** You should not attempt to use it directly.
+**
+** ========================================================================= */
+
+/* === S T A R T =========================================================== */
+
+#ifndef __ETL__MUTEX_PTHREADS_SIMPLE_H_
+#define __ETL__MUTEX_PTHREADS_SIMPLE_H_
+
+/* === H E A D E R S ======================================================= */
+
+#include <pthread.h>
+
+/* === M A C R O S ========================================================= */
+
+/* === C L A S S E S & S T R U C T S ======================================= */
+
+_ETL_BEGIN_NAMESPACE
+
+class mutex
+{
+       pthread_mutex_t mtx;
+public:
+                       mutex()                 { pthread_mutex_init(&mtx,NULL);        }
+                  ~mutex()                     { pthread_mutex_destroy(&mtx);          }
+       void    lock_mutex()    { pthread_mutex_lock(&mtx);                     }
+       void    unlock_mutex()  { pthread_mutex_unlock(&mtx);           }
+
+       //! Exception-safe mutex lock class
+       class lock
+       {
+               mutex *_mtx;
+       public:
+                lock(mutex &x):_mtx(&x)        { _mtx->lock_mutex();           }
+               ~lock()                                         { _mtx->unlock_mutex();         }
+       };
+};
+
+_ETL_END_NAMESPACE
+
+/* === E N D =============================================================== */
+
+#endif
diff --git a/ETL/trunk/ETL/_mutex_simple.h b/ETL/trunk/ETL/_mutex_simple.h
deleted file mode 100644 (file)
index b7500ba..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*! ========================================================================
-** Extended Template and Library
-** Mutex Abstraction Class Implementation
-** $Id$
-**
-** Copyright (c) 2002 Robert B. Quattlebaum Jr.
-**     Copyright (c) 2008 Chris Moore
-**
-** This package is free software; you can redistribute it and/or
-** modify it under the terms of the GNU General Public License as
-** published by the Free Software Foundation; either version 2 of
-** the License, or (at your option) any later version.
-**
-** This package 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
-** General Public License for more details.
-**
-** === N O T E S ===========================================================
-**
-** This is an internal header file, included by other ETL headers.
-** You should not attempt to use it directly.
-**
-** ========================================================================= */
-
-/* === S T A R T =========================================================== */
-
-#ifndef __ETL__MUTEX_SIMPLE_H_
-#define __ETL__MUTEX_SIMPLE_H_
-
-/* === H E A D E R S ======================================================= */
-
-#include <pthread.h>
-
-/* === M A C R O S ========================================================= */
-
-/* === C L A S S E S & S T R U C T S ======================================= */
-
-_ETL_BEGIN_NAMESPACE
-
-class mutex
-{
-       pthread_mutex_t mtx;
-public:
-                       mutex()                 { pthread_mutex_init(&mtx,NULL);        }
-                  ~mutex()                     { pthread_mutex_destroy(&mtx);          }
-       void    lock_mutex()    { pthread_mutex_lock(&mtx);                     }
-       void    unlock_mutex()  { pthread_mutex_unlock(&mtx);           }
-
-       //! Exception-safe mutex lock class
-       class lock
-       {
-               mutex *_mtx;
-       public:
-                lock(mutex &x):_mtx(&x)        { _mtx->lock_mutex();           }
-               ~lock()                                         { _mtx->unlock_mutex();         }
-       };
-};
-
-_ETL_END_NAMESPACE
-
-/* === E N D =============================================================== */
-
-#endif
index 9c3347e..010f5c2 100644 (file)
@@ -6,6 +6,7 @@
 **
 **     \legal
 **     Copyright (c) 2002 Robert B. Quattlebaum Jr.
+**     Copyright (c) 2008 Chris Moore
 **
 **     This package is free software; you can redistribute it and/or
 **     modify it under the terms of the GNU General Public License as
 
 #include "etl_config.h"
 
+// include the next line in an attempt to increase stability
+#define ETL_LOCK_REFCOUNTS
+
+#ifdef ETL_LOCK_REFCOUNTS
+#  include "mutex"
+#endif
+
 #include "_handle.h"
 
 /* === E N D =============================================================== */
index 4bc5d54..f7a9939 100644 (file)
 
 #include "etl_config.h"
 
-#include "_mutex_simple.h"
+#ifdef HAVE_LIBPTHREAD
+#  include "_mutex_pthreads_simple.h"
+#else
+#ifdef _WIN32
+#  include "_mutex_win32.h"
+#endif
+#endif
 
 /* === E N D =============================================================== */