diff options
author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2014-07-23 15:25:44 +0200 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2014-07-23 15:25:44 +0200 |
commit | 8286ac511144e4f17d34eac9affb97e50646344a (patch) | |
tree | f1af7320d7b6be6be059216d0ad08ac7b4f73fd0 /libcult/cult/sched/lock.hxx | |
parent | a15cf65c44d5c224169c32ef5495b68c758134b7 (diff) |
Imported Upstream version 4.0.0upstream/4.0.0
Diffstat (limited to 'libcult/cult/sched/lock.hxx')
-rw-r--r-- | libcult/cult/sched/lock.hxx | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/libcult/cult/sched/lock.hxx b/libcult/cult/sched/lock.hxx deleted file mode 100644 index 1ecf3fb..0000000 --- a/libcult/cult/sched/lock.hxx +++ /dev/null @@ -1,58 +0,0 @@ -// file : cult/sched/lock.hxx -// author : Boris Kolpackov <boris@kolpackov.net> -// copyright : Copyright (c) 2005-2010 Boris Kolpackov -// license : GNU GPL v2 + exceptions; see accompanying LICENSE file - -#ifndef CULT_SCHED_LOCK_HXX -#define CULT_SCHED_LOCK_HXX - -#include <cult/types/fundamental.hxx> - -namespace Cult -{ - namespace Sched - { - class Lock: public NonCopyable - { - public: - ~Lock () - { - unlock (); - } - - template <typename X> - Lock (X& x) - : x_ (reinterpret_cast<Void*>(&x)), - unlock_ (&unlock<X>), - locked_ (true) - { - x.lock (); - } - - Void - unlock () - { - if (locked_) - { - unlock_ (x_); - locked_ = false; - } - } - - private: - template <typename X> - static Void - unlock (Void* p) - { - reinterpret_cast<X*> (p)->unlock (); - } - - private: - Void* x_; - Void (*unlock_) (Void*); - Boolean locked_; - }; - } -} - -#endif // CULT_SCHED_LOCK_HXX |