X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fsynfig%2Fmutex.h;h=3497635ceabfb574fcb28b04e2c3e1ac516f374c;hb=9459638ad6797b8139f1e9f0715c96076dbf0890;hp=1066356693159a822251f65ef3a7333e5f736a65;hpb=28f28705612902c15cd0702cc891fba35bf2d2df;p=synfig.git diff --git a/synfig-core/trunk/src/synfig/mutex.h b/synfig-core/trunk/src/synfig/mutex.h index 1066356..3497635 100644 --- a/synfig-core/trunk/src/synfig/mutex.h +++ b/synfig-core/trunk/src/synfig/mutex.h @@ -2,19 +2,20 @@ /*! \file mutex.h ** \brief Template Header ** -** $Id: mutex.h,v 1.2 2005/01/10 07:40:26 darco Exp $ +** $Id$ ** ** \legal -** Copyright (c) 2002 Robert B. Quattlebaum Jr. +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley ** -** This software and associated documentation -** are CONFIDENTIAL and PROPRIETARY property of -** the above-mentioned copyright holder. +** 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. ** -** You may not copy, print, publish, or in any -** other way distribute this software without -** a prior written agreement with -** the copyright holder. +** 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. ** \endlegal */ /* ========================================================================= */ @@ -42,9 +43,9 @@ class Mutex protected: void* blackbox; - + public: - + class Lock { Mutex& mutex; @@ -52,19 +53,19 @@ public: Lock(Mutex& x):mutex(x) { mutex.lock(); } ~Lock() { mutex.unlock(); } }; - + Mutex(); ~Mutex(); - + void lock(); void unlock(); bool try_lock(); bool is_locked(); - + private: //! Non-copyable Mutex(const Mutex&); - + //! Non-assignable void operator=(const Mutex&); }; @@ -80,9 +81,9 @@ public: class RWLock { void* blackbox; - + public: - + class ReaderLock { RWLock& rw_lock; @@ -97,7 +98,7 @@ public: WriterLock(RWLock& x):rw_lock(x) { rw_lock.writer_lock(); } ~WriterLock() { rw_lock.writer_unlock(); } }; - + RWLock(); ~RWLock();