PThreadPrivateData.h
上传用户:chinafayin
上传日期:2022-04-05
资源大小:153k
文件大小:2k
源码类别:

并行计算

开发平台:

Visual C++

  1. //
  2. // OpenThread library, Copyright (C) 2002 - 2003  The Open Thread Group
  3. //
  4. // This library is free software; you can redistribute it and/or
  5. // modify it under the terms of the GNU Lesser General Public
  6. // License as published by the Free Software Foundation; either
  7. // version 2.1 of the License, or (at your option) any later version.
  8. //
  9. // This library is distributed in the hope that it will be useful,
  10. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  12. // Lesser General Public License for more details.
  13. // 
  14. // You should have received a copy of the GNU Lesser General Public
  15. // License along with this library; if not, write to the Free Software
  16. // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  17. // 
  18. //
  19. // PThreadPrivateData.h - Private data structure for Thread
  20. // ~~~~~~~~~~~~~~~~~~~~~
  21. #ifndef _PTHREADPRIVATEDATA_H_
  22. #define _PTHREADPRIVATEDATA_H_
  23. namespace OpenThreads {
  24. #include <pthread.h>
  25. #include "../Thread"
  26. class PThreadPrivateData {
  27.     //-------------------------------------------------------------------------
  28.     // We're friendly to Thread, so it can use our data.
  29.     //
  30.     friend class Thread;
  31.     //-------------------------------------------------------------------------
  32.     // We're friendly to PThreadPrivateActions, so it can get at some 
  33.     // variables.
  34.     //
  35.     friend class ThreadPrivateActions;
  36. private:
  37.     PThreadPrivateData() {};
  38.     virtual ~PThreadPrivateData() {};
  39.     volatile unsigned int stackSize;
  40.     volatile bool stackSizeLocked;
  41.     volatile bool isRunning;
  42.     volatile bool isCanceled;
  43.     volatile bool idSet;
  44.     volatile Thread::ThreadPriority threadPriority;
  45.     
  46.     volatile Thread::ThreadPolicy threadPolicy;
  47.     pthread_t tid;
  48.     volatile int uniqueId;
  49.     static int nextId;
  50.     static pthread_key_t s_tls_key;
  51. };
  52. }
  53. #endif // !_PTHREADPRIVATEDATA_H_