Commit 82bbde0c authored by Pavel Vainerman's avatar Pavel Vainerman

(Оптимизация): спорный способ: отказался от mutex, для "не критиной" переменной.…

(Оптимизация): спорный способ: отказался от mutex, для "не критиной" переменной. Просто сделал её atomic.
parent ddd5f5be
...@@ -184,8 +184,8 @@ class UniSetObject: ...@@ -184,8 +184,8 @@ class UniSetObject:
*/ */
virtual void cleanMsgQueue( MessagesQueue& q ); virtual void cleanMsgQueue( MessagesQueue& q );
bool isActive(); inline bool isActive(){ return active; }
void setActive( bool set ); inline void setActive( bool set ){ active = set ? 1 : 0; }
UniSetTypes::VoidMessage msg; UniSetTypes::VoidMessage msg;
UniSetManager* mymngr; UniSetManager* mymngr;
...@@ -219,8 +219,8 @@ class UniSetObject: ...@@ -219,8 +219,8 @@ class UniSetObject:
pid_t msgpid; // pid потока обработки сообщений pid_t msgpid; // pid потока обработки сообщений
bool reg; bool reg;
bool active; UniSetTypes::mutex_atomic_t active;
UniSetTypes::uniset_rwmutex mutex_act; // UniSetTypes::uniset_rwmutex mutex_act;
bool threadcreate; bool threadcreate;
UniSetTimer* tmr; UniSetTimer* tmr;
UniSetTypes::ObjectId myid; UniSetTypes::ObjectId myid;
......
...@@ -49,7 +49,7 @@ ui(UniSetTypes::DefaultObjectId), ...@@ -49,7 +49,7 @@ ui(UniSetTypes::DefaultObjectId),
mymngr(NULL), mymngr(NULL),
msgpid(0), msgpid(0),
reg(false), reg(false),
active(false), active(0),
threadcreate(false), threadcreate(false),
tmr(NULL), tmr(NULL),
myid(UniSetTypes::DefaultObjectId), myid(UniSetTypes::DefaultObjectId),
...@@ -71,7 +71,7 @@ ui(id), ...@@ -71,7 +71,7 @@ ui(id),
mymngr(NULL), mymngr(NULL),
msgpid(0), msgpid(0),
reg(false), reg(false),
active(false), active(0),
threadcreate(true), threadcreate(true),
tmr(NULL), tmr(NULL),
myid(id), myid(id),
...@@ -106,7 +106,7 @@ ui(UniSetTypes::DefaultObjectId), ...@@ -106,7 +106,7 @@ ui(UniSetTypes::DefaultObjectId),
mymngr(NULL), mymngr(NULL),
msgpid(0), msgpid(0),
reg(false), reg(false),
active(false), active(0),
threadcreate(true), threadcreate(true),
tmr(NULL), tmr(NULL),
myid(UniSetTypes::DefaultObjectId), myid(UniSetTypes::DefaultObjectId),
...@@ -147,7 +147,7 @@ void UniSetObject::init_object() ...@@ -147,7 +147,7 @@ void UniSetObject::init_object()
{ {
qmutex.setName(myname + "_qmutex"); qmutex.setName(myname + "_qmutex");
refmutex.setName(myname + "_refmutex"); refmutex.setName(myname + "_refmutex");
mutex_act.setName(myname + "_mutex_act"); // mutex_act.setName(myname + "_mutex_act");
SizeOfMessageQueue = conf->getArgPInt("--uniset-object-size-message-queue",conf->getField("SizeOfMessageQueue"), 1000); SizeOfMessageQueue = conf->getArgPInt("--uniset-object-size-message-queue",conf->getField("SizeOfMessageQueue"), 1000);
MaxCountRemoveOfMessage = conf->getArgInt("--uniset-object-maxcount-remove-message",conf->getField("MaxCountRemoveOfMessage")); MaxCountRemoveOfMessage = conf->getArgInt("--uniset-object-maxcount-remove-message",conf->getField("MaxCountRemoveOfMessage"));
...@@ -727,8 +727,6 @@ bool UniSetObject::activate() ...@@ -727,8 +727,6 @@ bool UniSetObject::activate()
poa->activate_object_with_id(oid, this); poa->activate_object_with_id(oid, this);
} }
{ {
UniSetTypes::uniset_rwmutex_wrlock lock(refmutex); UniSetTypes::uniset_rwmutex_wrlock lock(refmutex);
oref = poa->servant_to_reference(static_cast<PortableServer::ServantBase*>(this) ); oref = poa->servant_to_reference(static_cast<PortableServer::ServantBase*>(this) );
...@@ -881,16 +879,4 @@ bool UniSetObject::PriorVMsgCompare::operator()(const UniSetTypes::VoidMessage& ...@@ -881,16 +879,4 @@ bool UniSetObject::PriorVMsgCompare::operator()(const UniSetTypes::VoidMessage&
return lhs.priority < rhs.priority; return lhs.priority < rhs.priority;
} }
// ------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------
void UniSetObject::setActive( bool set )
{
uniset_rwmutex_wrlock l(mutex_act);
active = set;
}
// ------------------------------------------------------------------------------------------
bool UniSetObject::isActive()
{
uniset_rwmutex_rlock l(mutex_act);
return active;
}
// ------------------------------------------------------------------------------------------
#undef CREATE_TIMER #undef CREATE_TIMER
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment