Imported Upstream version 17.14.0
[platform/upstream/libzypp.git] / zypp / ZYppFactory.cc
index 03ea897..6712196 100644 (file)
@@ -38,6 +38,8 @@ using boost::interprocess::sharable_lock;
 
 using std::endl;
 
+namespace zyppintern { void repoVariablesReset(); }    // upon re-acquiring the lock...
+
 ///////////////////////////////////////////////////////////////////
 namespace zypp
 { /////////////////////////////////////////////////////////////////
@@ -188,7 +190,7 @@ namespace zypp
     bool isProcessRunning( pid_t pid_r )
     {
       // it is another program, not me, see if it is still running
-      Pathname procdir( "/proc"/str::numstring(pid_r) );
+      Pathname procdir( Pathname("/proc")/str::numstring(pid_r) );
       PathInfo status( procdir );
       MIL << "Checking " <<  status << endl;
 
@@ -306,11 +308,14 @@ namespace zypp
   ZYpp::ZYpp( const Impl_Ptr & impl_r )
   : _pimpl( impl_r )
   {
+    ::zyppintern::repoVariablesReset();        // upon re-acquiring the lock...
+    MIL << "ZYpp is on..." << endl;
   }
 
   ZYpp::~ZYpp()
   {
     _theGlobalLock.reset();
+    MIL << "ZYpp is off..." << endl;
   }
 
   ///////////////////////////////////////////////////////////////////
@@ -366,7 +371,7 @@ namespace zypp
        {
          MIL << "Waiting whether pid " << globalLock().lockerPid() << " ends within $LOCK_TIMEOUT=" << LOCK_TIMEOUT << " sec." << endl;
          unsigned delay = 1;
-         Pathname procdir( "/proc"/str::numstring(globalLock().lockerPid()) );
+          Pathname procdir( Pathname("/proc")/str::numstring(globalLock().lockerPid()) );
          for ( long i = 0; i < LOCK_TIMEOUT; i += delay )
          {
            if ( PathInfo( procdir ).isDir() )  // wait for /proc/pid to disapear
@@ -379,7 +384,7 @@ namespace zypp
              {
                // another proc locked faster. maybe it ends fast as well....
                MIL << "Waiting whether pid " << globalLock().lockerPid() << " ends within " << (LOCK_TIMEOUT-i) << " sec." << endl;
-               procdir = Pathname( "/proc"/str::numstring(globalLock().lockerPid()) );
+                procdir = Pathname( Pathname("/proc")/str::numstring(globalLock().lockerPid()) );
              }
              else
              {