[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

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



CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	kupcevic sourceware org	2006-10-24 21:51:05

Modified files:
	ricci/common   : File.cpp 

Log message:
	ricci: shred at wrong time

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

--- conga/ricci/common/File.cpp	2006/10/23 18:43:35	1.1
+++ conga/ricci/common/File.cpp	2006/10/24 21:51:05	1.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& 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]