/[svn]/linuxsampler/trunk/src/common/Mutex.cpp
ViewVC logotype

Diff of /linuxsampler/trunk/src/common/Mutex.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 289 by schoenebeck, Tue Oct 19 14:41:38 2004 UTC revision 880 by schoenebeck, Tue Jun 27 22:57:37 2006 UTC
# Line 3  Line 3 
3   *   LinuxSampler - modular, streaming capable sampler                     *   *   LinuxSampler - modular, streaming capable sampler                     *
4   *                                                                         *   *                                                                         *
5   *   Copyright (C) 2003, 2004 by Benno Senoner and Christian Schoenebeck   *   *   Copyright (C) 2003, 2004 by Benno Senoner and Christian Schoenebeck   *
6     *   Copyright (C) 2005, 2006 Christian Schoenebeck                        *
7   *                                                                         *   *                                                                         *
8   *   This program is free software; you can redistribute it and/or modify  *   *   This program is free software; you can redistribute it and/or modify  *
9   *   it under the terms of the GNU General Public License as published by  *   *   it under the terms of the GNU General Public License as published by  *
# Line 20  Line 21 
21   *   MA  02111-1307  USA                                                   *   *   MA  02111-1307  USA                                                   *
22   ***************************************************************************/   ***************************************************************************/
23    
24    #ifdef HAVE_CONFIG_H
25    # include <config.h>
26    #endif
27    
28  #ifndef _GNU_SOURCE  #ifndef _GNU_SOURCE
29  # define _GNU_SOURCE 1 /* so _XOPEN_SOURCE will be defined by features.h */  # define _GNU_SOURCE 1 /* so _XOPEN_SOURCE will be defined by features.h */
30  #endif  #endif
31    
32  #include <features.h>  #ifdef HAVE_FEATURES_H
33    # include <features.h>
34    #endif
35    
36  #if !defined(_XOPEN_SOURCE) || _XOPEN_SOURCE < 500  #if !defined(_XOPEN_SOURCE) || _XOPEN_SOURCE < 500
37  # undef _XOPEN_SOURCE  # undef _XOPEN_SOURCE
38  # define _XOPEN_SOURCE 500 /* to define PTHREAD_MUTEX_ERRORCHECK */  # define _XOPEN_SOURCE 500 /* to define PTHREAD_MUTEX_ERRORCHECK */
39  # warning Seems you don't have a UNIX98 compatible system.  # warning "Seems you don't have a UNIX98 compatible system."
40  # warning Please run LinuxSampler's selftest to make sure this won't oppose a problem!  # warning "Please run LinuxSampler's selftest to make sure this won't be a problem!"
41  # warning (compile tests with 'make tests', run them with 'src/testcases/linuxsamplertest')  # warning "(compile tests with 'make tests', run them with 'src/testcases/linuxsamplertest')"
42  #endif  #endif
43    
44  #include <iostream>  #include <iostream>
# Line 40  Line 47 
47    
48  #include "Mutex.h"  #include "Mutex.h"
49    
50    namespace LinuxSampler {
51    
52  Mutex::Mutex() {  Mutex::Mutex() {
53      // the following function call only works on UNIX98 compatible systems      // the following function call only works on UNIX98 compatible systems
54        #if (_XOPEN_SOURCE > 500)
55      if (pthread_mutexattr_settype(&__posix_mutexattr, PTHREAD_MUTEX_ERRORCHECK)) {      if (pthread_mutexattr_settype(&__posix_mutexattr, PTHREAD_MUTEX_ERRORCHECK)) {
56          std::cout << "Mutex Constructor: Fatal error - unable to pthread_mutexattr_settype(PTHREAD_MUTEX_ERRORCHECK)\n" << std::flush;          std::cout << "Mutex Constructor: Fatal error - unable to pthread_mutexattr_settype(PTHREAD_MUTEX_ERRORCHECK)\n" << std::flush;
57          exit(-1);          exit(-1);
58      }      }
59        #endif
60      pthread_mutex_init(&__posix_mutex, &__posix_mutexattr);      pthread_mutex_init(&__posix_mutex, &__posix_mutexattr);
61  }  }
62    
# Line 66  bool Mutex::Trylock() { Line 77  bool Mutex::Trylock() {
77  void Mutex::Unlock() {  void Mutex::Unlock() {
78      pthread_mutex_unlock(&__posix_mutex);      pthread_mutex_unlock(&__posix_mutex);
79  }  }
80    
81    } // namespace LinuxSampler

Legend:
Removed from v.289  
changed lines
  Added in v.880

  ViewVC Help
Powered by ViewVC