⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 atomic_count_pthreads.hpp

📁 这是VCF框架的代码
💻 HPP
字号:
#ifndef BOOST_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED#define BOOST_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED////  boost/detail/atomic_count_pthreads.hpp////  Copyright (c) 2001, 2002 Peter Dimov and Multi Media Ltd.//// Distributed under the Boost Software License, Version 1.0. (See// accompanying file LICENSE_1_0.txt or copy at// http://www.boost.org/LICENSE_1_0.txt)//#include <pthread.h>////  The generic pthread_mutex-based implementation sometimes leads to//    inefficiencies. Example: a class with two atomic_count members//    can get away with a single mutex.////  Users can detect this situation by checking BOOST_AC_USE_PTHREADS.//namespace boost{namespace detail{class atomic_count{private:    class scoped_lock    {    public:        scoped_lock(pthread_mutex_t & m): m_(m)        {            pthread_mutex_lock(&m_);        }        ~scoped_lock()        {            pthread_mutex_unlock(&m_);        }    private:        pthread_mutex_t & m_;    };public:    explicit atomic_count(long v): value_(v)    {        pthread_mutex_init(&mutex_, 0);    }    ~atomic_count()    {        pthread_mutex_destroy(&mutex_);    }    void operator++()    {        scoped_lock lock(mutex_);        ++value_;    }    long operator--()    {        scoped_lock lock(mutex_);        return --value_;    }    operator long() const    {        scoped_lock lock(mutex_);        return value_;    }private:    atomic_count(atomic_count const &);    atomic_count & operator=(atomic_count const &);    mutable pthread_mutex_t mutex_;    long value_;};} // namespace detail} // namespace boost#endif // #ifndef BOOST_DETAIL_ATOMIC_COUNT_PTHREADS_HPP_INCLUDED

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -