Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:12:29

0001 // @(#)root/thread:$Id$
0002 // Author: Fons Rademakers   01/07/97
0003 
0004 /*************************************************************************
0005  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
0006  * All rights reserved.                                                  *
0007  *                                                                       *
0008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
0009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
0010  *************************************************************************/
0011 
0012 
0013 #ifndef ROOT_TThreadFactory
0014 #define ROOT_TThreadFactory
0015 
0016 //////////////////////////////////////////////////////////////////////////
0017 //                                                                      //
0018 // TThreadFactory                                                       //
0019 //                                                                      //
0020 // This ABC is a factory for thread components. Depending on which      //
0021 // factory is active one gets either Posix or Win32 threads.            //
0022 //                                                                      //
0023 //////////////////////////////////////////////////////////////////////////
0024 
0025 #include "TNamed.h"
0026 
0027 class TMutexImp;
0028 class TConditionImp;
0029 class TThreadImp;
0030 class TThread;
0031 
0032 class TThreadFactory : public TNamed {
0033 
0034 public:
0035    TThreadFactory(const char *name = "Unknown", const char *title = "Unknown Thread Factory");
0036    virtual ~TThreadFactory() { }
0037 
0038    virtual TMutexImp      *CreateMutexImp(Bool_t recursive) = 0;
0039    virtual TConditionImp  *CreateConditionImp(TMutexImp *m) = 0;
0040    virtual TThreadImp     *CreateThreadImp() = 0;
0041 
0042    ClassDefOverride(TThreadFactory,0)  // Thread factory ABC
0043 };
0044 
0045 R__EXTERN TThreadFactory *gThreadFactory;
0046 
0047 #endif
0048 
0049 
0050