X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FRegistry%2FSALOME_Registry_Server.cxx;h=7627bd33ecee8333ac13ca4fbbbcd5b124eadb02;hb=f6120c1bdb84ed1cc827ffab8284c0ac2709189f;hp=8a8f4756929a387ddab148a6625d7c6c2da14de3;hpb=9749fc1db72bd80e278405114b05ffc69b5031da;p=modules%2Fkernel.git diff --git a/src/Registry/SALOME_Registry_Server.cxx b/src/Registry/SALOME_Registry_Server.cxx index 8a8f47569..7627bd33e 100644 --- a/src/Registry/SALOME_Registry_Server.cxx +++ b/src/Registry/SALOME_Registry_Server.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2021 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 @@ -6,7 +6,7 @@ // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -77,9 +77,6 @@ int main( int argc , char **argv ) const char *registryName = "Registry" ; long TIMESleep = 250000000; int NumberOfTries = 40; -#ifndef WIN32 - int a; -#endif timespec ts_req; ts_req.tv_nsec=TIMESleep; ts_req.tv_sec=0; @@ -106,7 +103,7 @@ int main( int argc , char **argv ) { if (i!=1) #ifndef WIN32 - a=nanosleep(&ts_req,&ts_rem); + nanosleep(&ts_req,&ts_rem); #else Sleep(TIMESleep/1000000); #endif @@ -135,7 +132,7 @@ int main( int argc , char **argv ) { if (j!=1) #ifndef WIN32 - a=nanosleep(&ts_req, &ts_rem); + nanosleep(&ts_req, &ts_rem); #else Sleep(TIMESleep/1000000); #endif @@ -143,7 +140,7 @@ int main( int argc , char **argv ) { object = inc->resolve(name); } - catch(CosNaming::NamingContext::NotFound) + catch(CosNaming::NamingContext::NotFound&) { MESSAGE( "Registry Server: Logger Server wasn't found" ); } @@ -170,7 +167,17 @@ int main( int argc , char **argv ) RegistryService *ptrRegistry = SINGLETON_::Instance() ; ptrRegistry->SessionName( ptrSessionName ) ; ptrRegistry->SetOrb(orb); - varComponents = ptrRegistry->_this() ; + // + CORBA::PolicyList policies; + policies.length(1); + PortableServer::ThreadPolicy_var threadPol(poa->create_thread_policy(PortableServer::SINGLE_THREAD_MODEL)); + policies[0]=PortableServer::ThreadPolicy::_duplicate(threadPol); + PortableServer::POA_var poa2(poa->create_POA("SingleThreadPOA4RegistryStandalone",manager,policies)); + threadPol->destroy(); + // + PortableServer::ObjectId_var id(poa2->activate_object(ptrRegistry)); + CORBA::Object_var pipo=poa2->id_to_reference(id); + varComponents = Registry::Components::_narrow(pipo) ; ptrRegistry->_remove_ref(); //let poa manage registryservice deletion // The RegistryService must not already exist.