Annotation of truecrypt/platform/unix/mutex.cpp, revision 1.1.1.1

1.1       root        1: /*
                      2:  Copyright (c) 2008 TrueCrypt Foundation. All rights reserved.
                      3: 
                      4:  Governed by the TrueCrypt License 2.4 the full text of which is contained
                      5:  in the file License.txt included in TrueCrypt binary and source code
                      6:  distribution packages.
                      7: */
                      8: 
                      9: #include <pthread.h>
                     10: #include "Platform/Mutex.h"
                     11: #include "Platform/SystemException.h"
                     12: 
                     13: namespace TrueCrypt
                     14: {
                     15:        Mutex::Mutex ()
                     16:        {
                     17:                pthread_mutexattr_t attributes;
                     18: 
                     19:                int status = pthread_mutexattr_init (&attributes);
                     20:                if (status != 0)
                     21:                        throw SystemException (SRC_POS, status);
                     22: 
                     23:                status = pthread_mutexattr_settype (&attributes, PTHREAD_MUTEX_RECURSIVE);
                     24:                if (status != 0)
                     25:                        throw SystemException (SRC_POS, status);
                     26: 
                     27:                status = pthread_mutex_init (&SystemMutex, &attributes);
                     28:                if (status != 0)
                     29:                        throw SystemException (SRC_POS, status);
                     30: 
                     31:                Initialized = true;
                     32:        }
                     33: 
                     34:        Mutex::~Mutex ()
                     35:        {
                     36:                Initialized = false;
                     37:                int status = pthread_mutex_destroy (&SystemMutex);
                     38:                if (status != 0)
                     39:                        throw SystemException (SRC_POS, status);
                     40:        }
                     41: 
                     42:        void Mutex::Lock ()
                     43:        {
                     44:                assert (Initialized);
                     45:                int status = pthread_mutex_lock (&SystemMutex);
                     46:                if (status != 0)
                     47:                        throw SystemException (SRC_POS, status);
                     48:        }
                     49: 
                     50:        void Mutex::Unlock ()
                     51:        {
                     52:                int status = pthread_mutex_unlock (&SystemMutex);
                     53:                if (status != 0)
                     54:                        throw SystemException (SRC_POS, status);
                     55:        }
                     56: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.