Salome HOME
projects
/
modules
/
kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
bos #26457 Factorization of ORB initialization
[modules/kernel.git]
/
src
/
SALOMETraceCollector
/
SALOMETraceCollector.cxx
diff --git
a/src/SALOMETraceCollector/SALOMETraceCollector.cxx
b/src/SALOMETraceCollector/SALOMETraceCollector.cxx
index 6f1c25a0b2b294e451dddc34119fb3177f789adb..716cd598590a166bb9996a4f243dc474a558ff8d 100644
(file)
--- a/
src/SALOMETraceCollector/SALOMETraceCollector.cxx
+++ b/
src/SALOMETraceCollector/SALOMETraceCollector.cxx
@@
-1,4
+1,4
@@
-// Copyright (C) 2007-20
14
CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-20
21
CEA/DEN, EDF R&D, OPEN CASCADE
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@
-33,19
+33,16
@@
#include <cstdlib>
#include <omniORB4/CORBA.h>
#include <cstdlib>
#include <omniORB4/CORBA.h>
+#include "Utils_SALOME_Exception.hxx"
#include "SALOMETraceCollector.hxx"
#include "TraceCollector_WaitForServerReadiness.hxx"
#include <SALOMEconfig.h>
#include CORBA_CLIENT_HEADER(Logger)
#include "SALOMETraceCollector.hxx"
#include "TraceCollector_WaitForServerReadiness.hxx"
#include <SALOMEconfig.h>
#include CORBA_CLIENT_HEADER(Logger)
-// Class attributes initialisation, for class method SALOMETraceCollector::run
-
-CORBA::ORB_ptr SALOMETraceCollector::_orb = 0;
-
// ============================================================================
/*!
* This class is for use with CORBA, inside SALOME.
// ============================================================================
/*!
* This class is for use with CORBA, inside SALOME.
- * Type of trace (and corresponding class) is cho
o
sen in LocalTraceBufferPool.
+ * Type of trace (and corresponding class) is chosen in LocalTraceBufferPool.
*
* Guarantees a unique object instance of the class (singleton thread safe)
* a separate thread for loop to print traces is launched.
*
* Guarantees a unique object instance of the class (singleton thread safe)
* a separate thread for loop to print traces is launched.
@@
-56,15
+53,10
@@
BaseTraceCollector* SALOMETraceCollector::instance()
{
if (_singleton == 0) // no need of lock when singleton already exists
{
{
if (_singleton == 0) // no need of lock when singleton already exists
{
- int ret;
- ret = pthread_mutex_lock(&_singletonMutex); // acquire lock to be alone
+ pthread_mutex_lock(&_singletonMutex); // acquire lock to be alone
if (_singleton == 0) // another thread may have got
{ // the lock after the first test
BaseTraceCollector* myInstance = new SALOMETraceCollector();
if (_singleton == 0) // another thread may have got
{ // the lock after the first test
BaseTraceCollector* myInstance = new SALOMETraceCollector();
- int argc=0;
- char *_argv=0;
- char ** argv = &_argv;
- _orb = CORBA::ORB_init (argc, argv);
sem_init(&_sem,0,0); // to wait until run thread is initialized
pthread_t traceThread;
sem_init(&_sem,0,0); // to wait until run thread is initialized
pthread_t traceThread;
@@
-74,7
+66,7
@@
BaseTraceCollector* SALOMETraceCollector::instance()
sem_wait(&_sem);
_singleton = myInstance; // _singleton known only when init done
}
sem_wait(&_sem);
_singleton = myInstance; // _singleton known only when init done
}
-
ret =
pthread_mutex_unlock(&_singletonMutex); // release lock
+ pthread_mutex_unlock(&_singletonMutex); // release lock
}
return _singleton;
}
}
return _singleton;
}
@@
-82,7
+74,7
@@
BaseTraceCollector* SALOMETraceCollector::instance()
// ============================================================================
/*!
* In a separate thread, loop to print traces.
// ============================================================================
/*!
* In a separate thread, loop to print traces.
- * Mutex g
arantees in
tialisation on instance method is done and only one run
+ * Mutex g
uarantees ini
tialisation on instance method is done and only one run
* allowed (double check ...)
* Loop until there is no more buffer to print,
* and no ask for end from destructor.
* allowed (double check ...)
* Loop until there is no more buffer to print,
* and no ask for end from destructor.
@@
-90,7
+82,7
@@
BaseTraceCollector* SALOMETraceCollector::instance()
*/
// ============================================================================
*/
// ============================================================================
-void* SALOMETraceCollector::run(void
*bid
)
+void* SALOMETraceCollector::run(void
* /*bid*/
)
{
_threadId = new pthread_t;
*_threadId = pthread_self();
{
_threadId = new pthread_t;
*_threadId = pthread_self();
@@
-102,7
+94,7
@@
void* SALOMETraceCollector::run(void *bid)
SALOME_Logger::Logger_var m_pInterfaceLogger;
CORBA::Object_var obj;
SALOME_Logger::Logger_var m_pInterfaceLogger;
CORBA::Object_var obj;
- obj = TraceCollector_WaitForServerReadiness(
_orb,
"Logger");
+ obj = TraceCollector_WaitForServerReadiness("Logger");
if (!CORBA::is_nil(obj))
m_pInterfaceLogger = SALOME_Logger::Logger::_narrow(obj);
if (CORBA::is_nil(m_pInterfaceLogger))
if (!CORBA::is_nil(obj))
m_pInterfaceLogger = SALOME_Logger::Logger::_narrow(obj);
if (CORBA::is_nil(m_pInterfaceLogger))
@@
-131,7
+123,8
@@
void* SALOMETraceCollector::run(void *bid)
}
myTraceBuffer->retrieve(myTrace);
}
myTraceBuffer->retrieve(myTrace);
- if (!CORBA::is_nil(_orb))
+ //if (!CORBA::is_nil(_orb))
+ if (true)
{
if (myTrace.traceType == ABORT_MESS)
{
{
if (myTrace.traceType == ABORT_MESS)
{
@@
-176,8
+169,7
@@
void* SALOMETraceCollector::run(void *bid)
SALOMETraceCollector:: ~SALOMETraceCollector()
{
SALOMETraceCollector:: ~SALOMETraceCollector()
{
- int ret;
- ret = pthread_mutex_lock(&_singletonMutex); // acquire lock to be alone
+ pthread_mutex_lock(&_singletonMutex); // acquire lock to be alone
if (_singleton)
{
DEVTRACE("SALOMETraceCollector:: ~SALOMETraceCollector()");
if (_singleton)
{
DEVTRACE("SALOMETraceCollector:: ~SALOMETraceCollector()");
@@
-187,15
+179,15
@@
SALOMETraceCollector:: ~SALOMETraceCollector()
if (_threadId)
{
int ret = pthread_join(*_threadId, NULL);
if (_threadId)
{
int ret = pthread_join(*_threadId, NULL);
- if (ret)
std::cerr << "error close SALOMETraceCollector : "<< ret << std::endl;
- else
DEVTRACE("SALOMETraceCollector destruction OK")
;
+ if (ret)
{ std::cerr << "error close SALOMETraceCollector : "<< ret << std::endl; }
+ else
{ DEVTRACE("SALOMETraceCollector destruction OK") }
;
delete _threadId;
_threadId = 0;
_threadToClose = 0;
}
_singleton = 0;
}
delete _threadId;
_threadId = 0;
_threadToClose = 0;
}
_singleton = 0;
}
-
ret =
pthread_mutex_unlock(&_singletonMutex); // release lock
+ pthread_mutex_unlock(&_singletonMutex); // release lock
}
// ============================================================================
}
// ============================================================================