Make a HadronZoo fatal error report using varags and place it both in the logfile for the thread and to stderr Returns: None

Return TypeFunction nameArguments
voidFatal(const char*,)

Declared in file: hzProcess.h
Defined in file : hzError.cpp

Function Logic:

0:START 1:unknown 2: No text 3:phz _hzGlobal_kill items items fmt items items items pLog 4:unknown 5:items 6:unknown 7:items 8:items 9:items items 10: No text

Function body:

void Fatal (const char* va_alist)
{
   //  Category: Diagnostics
   //  
   //  Make a HadronZoo fatal error report using varags and place it both in the logfile for the thread and to stderr
   //  
   //  Arguments: 1) error The variable argument error message
   //  
   //  Returns: None
   va_list     ap1 ;       //  Variable argument list
   hzChain     E ;         //  Error chain
   hzXDate     d ;         //  System full date
   hzLogger*   pLog ;      //  Output logfile
    hzProcess*  phz ;      //  Process controller
   const char* fmt ;       //  Format control string
   if (_hzGlobal_kill)
       return ;
   //  Get log channel and current date & time
   //  pLog = GetThreadLogger() ;
    phz = GetThreadInfo() ;
   _hzGlobal_kill = true ;
   d.SysDateTime() ;
   //  Sort the args
   va_start(ap1, va_alist) ;
   fmt = va_alist ;
   //  Populate the errmsg chain
   E.Printf("Fatal Error in process %05u (tid %u) at %04d%02d%02d-%02d%02d%02d -> ",
       getpid(), pthread_self(), d.Year(), d.Month(), d.Day(), d.Hour(), d.Min(), d.Sec()) ;
   E._vainto(fmt, ap1) ;
   va_end(ap1) ;
   //  Output the message - deal with case where no logger is found for the current thread or the logger is closed or non-verbose (demon)
   pLog = GetThreadLogger() ;
   if (!pLog)
       std::cerr << E ;
   else
   {
       if (pLog->IsOpen())
           pLog->Out(E) ;
       else
           std::cerr << E ;
   }
   phz->StackTrace() ;
   exit(0);
}