Date: 2013-07-02T14:39:33+00:00

Actual source code: threadcommregi.c
petsc-3.4.2 2013-07-02

      2: #include <petsc-private/threadcommimpl.h>     /*I    "petscthreadcomm.h"  I*/

      4: PETSC_EXTERN PetscErrorCode PetscThreadCommCreate_NoThread(PetscThreadComm);
      5: #if defined(PETSC_HAVE_PTHREADCLASSES)
      6: PETSC_EXTERN PetscErrorCode PetscThreadCommCreate_PThread(PetscThreadComm);
      7: #endif
      8: #if defined(PETSC_HAVE_OPENMP)
      9: PETSC_EXTERN PetscErrorCode PetscThreadCommCreate_OpenMP(PetscThreadComm);
     10: #endif

     12: extern PetscBool PetscThreadCommRegisterAllCalled;

     16: /*@C
     17:    PetscThreadCommRegisterAll - Registers of all the thread communicator models

     19:    Not Collective

     21:    Level: advanced

     23: .keywords: PetscThreadComm, register, all

     25: .seealso: PetscThreadCommRegisterDestroy()
     26: @*/
     27: PetscErrorCode PetscThreadCommRegisterAll(void)
     28: {

     32:   PetscThreadCommRegisterAllCalled = PETSC_TRUE;

     34:   PetscThreadCommRegister(NOTHREAD,PetscThreadCommCreate_NoThread);
     35: #if defined(PETSC_HAVE_PTHREADCLASSES)
     36:   PetscThreadCommRegister(PTHREAD, PetscThreadCommCreate_PThread);
     37: #endif
     38: #if defined(PETSC_HAVE_OPENMP)
     39:   PetscThreadCommRegister(OPENMP,  PetscThreadCommCreate_OpenMP);
     40: #endif
     41:   return(0);
     42: }