aboutsummaryrefslogtreecommitdiff
path: root/packages/noncvs/windows/extra/Gem/dev/Gem/ThreadMutex.h
blob: cee701f6ef732b898c71b953be627f651da575fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/*-----------------------------------------------------------------
LOG
    GEM - Graphics Environment for Multimedia

	- locks a thread (wrapper around pthread_mutex)

    Copyright (c) 2011-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at
    For information on usage and redistribution, and for a DISCLAIMER OF ALL
    WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution.

-----------------------------------------------------------------*/

#ifndef _INCLUDE__GEM_GEM_THREADMUTEX_H_
#define _INCLUDE__GEM_GEM_THREADMUTEX_H_


#include "Gem/ExportDef.h"

namespace gem { 
  namespace thread {
    GEM_EXTERN class Mutex {
    private:
      class PIMPL;
      PIMPL*m_pimpl;
    public:
      Mutex(void);
      virtual ~Mutex(void);

      Mutex(const Mutex&);
      Mutex&operator=(const Mutex&);
      
      void lock   (void);
      void unlock (void);
      bool trylock(void);
    };
  };
};
#endif /* _INCLUDE__GEM_GEM_THREADMUTEX_H_ */