Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-21 10:00:32

0001 /***********************************************************************************\
0002 * (c) Copyright 1998-2019 CERN for the benefit of the LHCb and ATLAS collaborations *
0003 *                                                                                   *
0004 * This software is distributed under the terms of the Apache version 2 licence,     *
0005 * copied verbatim in the file "LICENSE".                                            *
0006 *                                                                                   *
0007 * In applying this licence, CERN does not waive the privileges and immunities       *
0008 * granted to it by virtue of its status as an Intergovernmental Organization        *
0009 * or submit itself to any jurisdiction.                                             *
0010 \***********************************************************************************/
0011 #ifndef GAUDIKERNEL_ITHREADPOOLSVC_H
0012 #define GAUDIKERNEL_ITHREADPOOLSVC_H
0013 
0014 #include "GaudiKernel/IInterface.h"
0015 #include "GaudiKernel/IThreadInitTool.h"
0016 #include <vector>
0017 
0018 //-----------------------------------------------------------------------------
0019 
0020 /** @class IThreadPoolSvc GaudiKernel/IThreadPoolSvc.h
0021  *
0022  *  @brief Abstract interface for a service that manages a thread pool.
0023  *
0024  *  Also provides a method to retrieve a list of thread initialization tools.
0025  *  initialization tools.
0026  *
0027  *  @author Charles Leggett
0028  *  @date   2015-09-01
0029  */
0030 
0031 //-----------------------------------------------------------------------------
0032 
0033 class GAUDI_API IThreadPoolSvc : virtual public IInterface {
0034 
0035 public:
0036   /// InterfaceID
0037   DeclareInterfaceID( IThreadPoolSvc, 1, 0 );
0038 
0039   /// Initializes the thread pool
0040   virtual StatusCode initPool( const int& poolSize ) = 0;
0041 
0042   /// Finalize the thread pool
0043   virtual StatusCode terminatePool() = 0;
0044 
0045   /// Size of the initialized thread pool
0046   virtual int poolSize() const = 0;
0047 
0048   /// Do thread local initialization of current thread.
0049   /// Should only be used if it's determined that it has not
0050   /// already been done.
0051   virtual void initThisThread() = 0;
0052 };
0053 
0054 #endif