[Cluster-devel] conga/ricci/common File.cpp
kupcevic at sourceware.org
kupcevic at sourceware.org
Tue Oct 24 21:51:06 UTC 2006
CVSROOT: /cvs/cluster
Module name: conga
Changes by: kupcevic at 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&
More information about the Cluster-devel
mailing list