os_thread_functions.hpp

来自「Boost provides free peer-reviewed portab」· HPP 代码 · 共 85 行

HPP
85
字号
////////////////////////////////////////////////////////////////////////////////// (C) Copyright Ion Gaztanaga 2005-2008. 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)//// See http://www.boost.org/libs/interprocess for documentation.////////////////////////////////////////////////////////////////////////////////#ifndef BOOST_INTERPROCESS_DETAIL_OS_THREAD_FUNCTIONS_HPP#define BOOST_INTERPROCESS_DETAIL_OS_THREAD_FUNCTIONS_HPP#include <boost/interprocess/detail/config_begin.hpp>#include <boost/interprocess/detail/workaround.hpp>#if (defined BOOST_WINDOWS) && !(defined BOOST_DISABLE_WIN32)#  include <boost/interprocess/detail/win32_api.hpp>#else#  ifdef BOOST_HAS_UNISTD_H#     include <pthread.h>#     include <unistd.h>#     include <sched.h>#  else#     error Unknown platform#  endif#endifnamespace boost {namespace interprocess {namespace detail{#if (defined BOOST_WINDOWS) && !(defined BOOST_DISABLE_WIN32)typedef unsigned long OS_process_id_t;typedef unsigned long OS_thread_id_t;inline OS_process_id_t get_current_process_id(){  return winapi::get_current_process_id();  }inline OS_thread_id_t get_current_thread_id(){  return winapi::get_current_thread_id();  }inline OS_thread_id_t get_invalid_thread_id(){  return OS_thread_id_t(0xffffffff);  }inline bool equal_thread_id(OS_thread_id_t id1, OS_thread_id_t id2){  return id1 == id2;  }inline void thread_yield(){  winapi::sched_yield();  }#else    //#if (defined BOOST_WINDOWS) && !(defined BOOST_DISABLE_WIN32)typedef pthread_t OS_thread_id_t;typedef int OS_process_id_t;inline OS_process_id_t get_current_process_id(){  return getpid();  }inline pthread_t get_current_thread_id(){  return pthread_self();  }inline OS_thread_id_t get_invalid_thread_id(){     static pthread_t invalid_id;   return invalid_id;}inline bool equal_thread_id(OS_thread_id_t id1, OS_thread_id_t id2){  return 0 != pthread_equal(id1, id2);  }inline void thread_yield(){  sched_yield();  }#endif   //#if (defined BOOST_WINDOWS) && !(defined BOOST_DISABLE_WIN32)}  //namespace detail{}  //namespace interprocess {}  //namespace boost {#include <boost/interprocess/detail/config_end.hpp>#endif   //BOOST_INTERPROCESS_DETAIL_OS_THREAD_FUNCTIONS_HPP

⌨️ 快捷键说明

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