diff options
Diffstat (limited to 'kaldi_io/src/tools/openfst/include/fst/lock.h')
-rw-r--r-- | kaldi_io/src/tools/openfst/include/fst/lock.h | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/kaldi_io/src/tools/openfst/include/fst/lock.h b/kaldi_io/src/tools/openfst/include/fst/lock.h deleted file mode 100644 index 58cb22a..0000000 --- a/kaldi_io/src/tools/openfst/include/fst/lock.h +++ /dev/null @@ -1,100 +0,0 @@ -// lock.h -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// Author: [email protected] (Michael Riley) -// -// \file -// Google-compatibility locking declarations and inline definitions -// -// Classes and functions here are no-ops (by design); proper locking requires -// actual implementation. - -#ifndef FST_LIB_LOCK_H__ -#define FST_LIB_LOCK_H__ - -#include <fst/compat.h> // for DISALLOW_COPY_AND_ASSIGN - -namespace fst { - -using namespace std; - -// -// Single initialization - single-thread implementation -// - -typedef int FstOnceType; - -static const int FST_ONCE_INIT = 1; - -inline int FstOnceInit(FstOnceType *once, void (*init)(void)) { - if (*once) - (*init)(); - *once = 0; - return 0; -} - -// -// Thread locking - single-thread (non-)implementation -// - -class Mutex { - public: - Mutex() {} - - private: - DISALLOW_COPY_AND_ASSIGN(Mutex); -}; - -class MutexLock { - public: - MutexLock(Mutex *) {} - - private: - DISALLOW_COPY_AND_ASSIGN(MutexLock); -}; - -class ReaderMutexLock { - public: - ReaderMutexLock(Mutex *) {} - - private: - DISALLOW_COPY_AND_ASSIGN(ReaderMutexLock); -}; - -// Reference counting - single-thread implementation -class RefCounter { - public: - RefCounter() : count_(1) {} - - int count() const { return count_; } - -// below lines are modifications of openfst for multi-thrads support, -// from tools/extras/openfst_gcc41up.patch, applied by tools/Makefile, -// applicable to gcc 4.1 or above - // int Incr() const { return ++count_; } - // int Decr() const { return --count_; } - - int Incr() const { return __sync_add_and_fetch(&count_, 1); } - int Decr() const { return __sync_sub_and_fetch(&count_, 1); } -// end modifications - - private: - mutable int count_; - - DISALLOW_COPY_AND_ASSIGN(RefCounter); -}; - -} // namespace fst - -#endif // FST_LIB_LOCK_H__ |