[Cluster-devel] conga/ricci/common File.cpp

kupcevic at sourceware.org kupcevic at sourceware.org
Tue Oct 24 21:57:36 UTC 2006


CVSROOT:	/cvs/cluster
Module name:	conga
Branch: 	RHEL5
Changes by:	kupcevic at sourceware.org	2006-10-24 21:57:36

Modified files:
	ricci/common   : File.cpp 

Log message:
	ricci: finish bug bz211564

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/ricci/common/File.cpp.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.1.2.1&r2=1.1.2.2

--- conga/ricci/common/File.cpp	2006/10/23 21:13:20	1.1.2.1
+++ conga/ricci/common/File.cpp	2006/10/24 21:57:36	1.1.2.2
@@ -120,6 +120,8 @@
 String 
 File::path() const
 {
+  MutexLocker l(*_mutex);
+  
   return _path;
 }
 
@@ -143,12 +145,18 @@
   
   long len = size();
   auto_ptr<char> buff(new char[len]);
-  ((fstream*) _pimpl->fs)->seekg(0, ios::beg);
-  check_failed();
-  ((fstream*) _pimpl->fs)->read(buff.get(), len);
-  ::shred(buff.get(), len);
-  check_failed();
-  return String(buff.get(), len);
+  try {
+    ((fstream*) _pimpl->fs)->seekg(0, ios::beg);
+    check_failed();
+    ((fstream*) _pimpl->fs)->read(buff.get(), len);
+    check_failed();
+    String ret(buff.get(), len);
+    ::shred(buff.get(), len);
+    return ret;
+  } catch ( ... ) {
+    ::shred(buff.get(), len);
+    throw;
+  }
 }
 
 File& 




More information about the Cluster-devel mailing list