check for invalid parameter, coverity issue 1198843, also reformat source
This commit is contained in:
parent
3a1a51ac46
commit
9894f2e053
@ -48,45 +48,40 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||||||
|
|
||||||
const unsigned number_of_elements = 268435456;
|
const unsigned number_of_elements = 268435456;
|
||||||
|
|
||||||
struct Statistics { double min, max, med, mean, dev; };
|
struct Statistics
|
||||||
|
{
|
||||||
|
double min, max, med, mean, dev;
|
||||||
|
};
|
||||||
|
|
||||||
void RunStatistics(std::vector<double> & timings_vector, Statistics & stats) {
|
void RunStatistics(std::vector<double> &timings_vector, Statistics &stats)
|
||||||
|
{
|
||||||
std::sort(timings_vector.begin(), timings_vector.end());
|
std::sort(timings_vector.begin(), timings_vector.end());
|
||||||
stats.min = timings_vector.front();
|
stats.min = timings_vector.front();
|
||||||
stats.max = timings_vector.back();
|
stats.max = timings_vector.back();
|
||||||
stats.med = timings_vector[timings_vector.size()/2];
|
stats.med = timings_vector[timings_vector.size() / 2];
|
||||||
double primary_sum = std::accumulate(
|
double primary_sum = std::accumulate(timings_vector.begin(), timings_vector.end(), 0.0);
|
||||||
timings_vector.begin(),
|
|
||||||
timings_vector.end(),
|
|
||||||
0.0
|
|
||||||
);
|
|
||||||
stats.mean = primary_sum / timings_vector.size();
|
stats.mean = primary_sum / timings_vector.size();
|
||||||
|
|
||||||
double primary_sq_sum = std::inner_product( timings_vector.begin(),
|
double primary_sq_sum = std::inner_product(
|
||||||
timings_vector.end(),
|
timings_vector.begin(), timings_vector.end(), timings_vector.begin(), 0.0);
|
||||||
timings_vector.begin(),
|
stats.dev = std::sqrt(primary_sq_sum / timings_vector.size() - (stats.mean * stats.mean));
|
||||||
0.0
|
|
||||||
);
|
|
||||||
stats.dev = std::sqrt(
|
|
||||||
primary_sq_sum / timings_vector.size() - (stats.mean * stats.mean)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int main (int argc, char * argv[]) {
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
LogPolicy::GetInstance().Unmute();
|
LogPolicy::GetInstance().Unmute();
|
||||||
|
|
||||||
SimpleLogger().Write() <<
|
SimpleLogger().Write() << "starting up engines, " << g_GIT_DESCRIPTION << ", "
|
||||||
"starting up engines, " << g_GIT_DESCRIPTION << ", " <<
|
<< "compiled at " << __DATE__ << ", " __TIME__;
|
||||||
"compiled at " << __DATE__ << ", " __TIME__;
|
|
||||||
|
|
||||||
#ifdef __FreeBSD__
|
#ifdef __FreeBSD__
|
||||||
SimpleLogger().Write() << "Not supported on FreeBSD";
|
SimpleLogger().Write() << "Not supported on FreeBSD";
|
||||||
return 0;
|
return 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if( 1 == argc ) {
|
if (1 == argc)
|
||||||
SimpleLogger().Write(logWARNING) <<
|
{
|
||||||
"usage: " << argv[0] << " /path/on/device";
|
SimpleLogger().Write(logWARNING) << "usage: " << argv[0] << " /path/on/device";
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -94,119 +89,105 @@ int main (int argc, char * argv[]) {
|
|||||||
test_path /= "osrm.tst";
|
test_path /= "osrm.tst";
|
||||||
SimpleLogger().Write(logDEBUG) << "temporary file: " << test_path.string();
|
SimpleLogger().Write(logDEBUG) << "temporary file: " << test_path.string();
|
||||||
|
|
||||||
try {
|
try
|
||||||
//create files for testing
|
{
|
||||||
if( 2 == argc) {
|
// create files for testing
|
||||||
//create file to test
|
if (2 == argc)
|
||||||
if( boost::filesystem::exists(test_path) ) {
|
{
|
||||||
|
// create file to test
|
||||||
|
if (boost::filesystem::exists(test_path))
|
||||||
|
{
|
||||||
throw OSRMException("Data file already exists");
|
throw OSRMException("Data file already exists");
|
||||||
}
|
}
|
||||||
|
|
||||||
double time1, time2;
|
double time1, time2;
|
||||||
int * random_array = new int[number_of_elements];
|
int *random_array = new int[number_of_elements];
|
||||||
std::generate (
|
std::generate(random_array, random_array + number_of_elements, std::rand);
|
||||||
random_array,
|
|
||||||
random_array+number_of_elements,
|
|
||||||
std::rand
|
|
||||||
);
|
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
FILE * fd = fopen(test_path.string().c_str(), "w");
|
FILE *fd = fopen(test_path.string().c_str(), "w");
|
||||||
fcntl(fileno(fd), F_NOCACHE, 1);
|
fcntl(fileno(fd), F_NOCACHE, 1);
|
||||||
fcntl(fileno(fd), F_RDAHEAD, 0);
|
fcntl(fileno(fd), F_RDAHEAD, 0);
|
||||||
time1 = get_timestamp();
|
time1 = get_timestamp();
|
||||||
write(
|
write(fileno(fd), (char *)random_array, number_of_elements * sizeof(unsigned));
|
||||||
fileno(fd),
|
|
||||||
(char*)random_array,
|
|
||||||
number_of_elements*sizeof(unsigned)
|
|
||||||
);
|
|
||||||
time2 = get_timestamp();
|
time2 = get_timestamp();
|
||||||
fclose(fd);
|
fclose(fd);
|
||||||
#endif
|
#endif
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
int f = open(
|
int f =
|
||||||
test_path.string().c_str(),
|
open(test_path.string().c_str(), O_CREAT | O_TRUNC | O_WRONLY | O_SYNC, S_IRWXU);
|
||||||
O_CREAT|O_TRUNC|O_WRONLY|O_SYNC,
|
|
||||||
S_IRWXU
|
|
||||||
);
|
|
||||||
time1 = get_timestamp();
|
time1 = get_timestamp();
|
||||||
int ret = write(
|
int ret = write(f, random_array, number_of_elements * sizeof(unsigned));
|
||||||
f,
|
if (-1 == ret)
|
||||||
random_array,
|
{
|
||||||
number_of_elements*sizeof(unsigned)
|
|
||||||
);
|
|
||||||
if(-1 == ret) {
|
|
||||||
throw OSRMException("could not write random data file");
|
throw OSRMException("could not write random data file");
|
||||||
}
|
}
|
||||||
time2 = get_timestamp();
|
time2 = get_timestamp();
|
||||||
close(f);
|
close(f);
|
||||||
#endif
|
#endif
|
||||||
delete[] random_array;
|
delete[] random_array;
|
||||||
SimpleLogger().Write(logDEBUG) <<
|
SimpleLogger().Write(logDEBUG) << "writing raw 1GB took " << (time2 - time1) * 1000
|
||||||
"writing raw 1GB took " << (time2-time1)*1000 << "ms";
|
<< "ms";
|
||||||
SimpleLogger().Write() << "raw write performance: " <<
|
SimpleLogger().Write() << "raw write performance: " << std::setprecision(5)
|
||||||
std::setprecision(5) << std::fixed <<
|
<< std::fixed << 1024 * 1024 / ((time2 - time1) * 1000)
|
||||||
1024*1024/((time2-time1)*1000) << "MB/sec";
|
<< "MB/sec";
|
||||||
|
|
||||||
SimpleLogger().Write(logDEBUG) <<
|
SimpleLogger().Write(logDEBUG)
|
||||||
"finished creation of random data. Flush disk cache now!";
|
<< "finished creation of random data. Flush disk cache now!";
|
||||||
|
}
|
||||||
} else {
|
else
|
||||||
|
{
|
||||||
|
|
||||||
//
|
//
|
||||||
// Run Non-Cached I/O benchmarks
|
// Run Non-Cached I/O benchmarks
|
||||||
//
|
//
|
||||||
|
|
||||||
if( !boost::filesystem::exists(test_path) ) {
|
if (!boost::filesystem::exists(test_path))
|
||||||
|
{
|
||||||
throw OSRMException("data file does not exist");
|
throw OSRMException("data file does not exist");
|
||||||
}
|
}
|
||||||
|
|
||||||
double time1, time2;
|
double time1, time2;
|
||||||
//volatiles do not get optimized
|
// volatiles do not get optimized
|
||||||
Statistics stats;
|
Statistics stats;
|
||||||
|
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
volatile unsigned single_block[1024];
|
volatile unsigned single_block[1024];
|
||||||
char * raw_array = new char[number_of_elements*sizeof(unsigned)];
|
char *raw_array = new char[number_of_elements * sizeof(unsigned)];
|
||||||
FILE * fd = fopen(test_path.string().c_str(), "r");
|
FILE *fd = fopen(test_path.string().c_str(), "r");
|
||||||
fcntl(fileno(fd), F_NOCACHE, 1);
|
fcntl(fileno(fd), F_NOCACHE, 1);
|
||||||
fcntl(fileno(fd), F_RDAHEAD, 0);
|
fcntl(fileno(fd), F_RDAHEAD, 0);
|
||||||
#endif
|
#endif
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
char * single_block = (char*) memalign(
|
char *single_block = (char *)memalign(512, 1024 * sizeof(unsigned));
|
||||||
512,
|
|
||||||
1024*sizeof(unsigned)
|
|
||||||
);
|
|
||||||
|
|
||||||
int f = open(test_path.string().c_str(), O_RDONLY|O_DIRECT|O_SYNC);
|
int f = open(test_path.string().c_str(), O_RDONLY | O_DIRECT | O_SYNC);
|
||||||
SimpleLogger().Write(logDEBUG) <<
|
if (-1 == f)
|
||||||
"opened, error: " << strerror(errno);
|
{
|
||||||
char * raw_array = (char*) memalign(
|
SimpleLogger().Write(logDEBUG) << "opened, error: " << strerror(errno);
|
||||||
512,
|
return -1;
|
||||||
number_of_elements*sizeof(unsigned)
|
}
|
||||||
);
|
char *raw_array = (char *)memalign(512, number_of_elements * sizeof(unsigned));
|
||||||
#endif
|
#endif
|
||||||
time1 = get_timestamp();
|
time1 = get_timestamp();
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
read(fileno(fd), raw_array, number_of_elements*sizeof(unsigned));
|
read(fileno(fd), raw_array, number_of_elements * sizeof(unsigned));
|
||||||
close(fileno(fd));
|
close(fileno(fd));
|
||||||
fd = fopen(test_path.string().c_str(), "r");
|
fd = fopen(test_path.string().c_str(), "r");
|
||||||
#endif
|
#endif
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
int ret = read(f, raw_array, number_of_elements*sizeof(unsigned));
|
int ret = read(f, raw_array, number_of_elements * sizeof(unsigned));
|
||||||
SimpleLogger().Write(logDEBUG) <<
|
SimpleLogger().Write(logDEBUG) << "read " << ret
|
||||||
"read " << ret << " bytes, error: " << strerror(errno);
|
<< " bytes, error: " << strerror(errno);
|
||||||
close(f);
|
close(f);
|
||||||
f = open(test_path.string().c_str(), O_RDONLY|O_DIRECT|O_SYNC);
|
f = open(test_path.string().c_str(), O_RDONLY | O_DIRECT | O_SYNC);
|
||||||
SimpleLogger().Write(logDEBUG) <<
|
SimpleLogger().Write(logDEBUG) << "opened, error: " << strerror(errno);
|
||||||
"opened, error: " << strerror(errno);
|
|
||||||
#endif
|
#endif
|
||||||
time2 = get_timestamp();
|
time2 = get_timestamp();
|
||||||
|
|
||||||
SimpleLogger().Write(logDEBUG) <<
|
SimpleLogger().Write(logDEBUG) << "reading raw 1GB took " << (time2 - time1) * 1000
|
||||||
"reading raw 1GB took " << (time2-time1)*1000 << "ms";
|
<< "ms";
|
||||||
SimpleLogger().Write() << "raw read performance: " <<
|
SimpleLogger().Write() << "raw read performance: " << std::setprecision(5) << std::fixed
|
||||||
std::setprecision(5) << std::fixed <<
|
<< 1024 * 1024 / ((time2 - time1) * 1000) << "MB/sec";
|
||||||
1024*1024/((time2-time1)*1000) << "MB/sec";
|
|
||||||
|
|
||||||
std::vector<double> timing_results_raw_random;
|
std::vector<double> timing_results_raw_random;
|
||||||
SimpleLogger().Write(logDEBUG) << "running 1000 random I/Os of 4KB";
|
SimpleLogger().Write(logDEBUG) << "running 1000 random I/Os of 4KB";
|
||||||
@ -217,15 +198,16 @@ int main (int argc, char * argv[]) {
|
|||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
lseek(f, 0, SEEK_SET);
|
lseek(f, 0, SEEK_SET);
|
||||||
#endif
|
#endif
|
||||||
//make 1000 random access, time each I/O seperately
|
// make 1000 random access, time each I/O seperately
|
||||||
unsigned number_of_blocks = (number_of_elements*sizeof(unsigned)-1)/4096;
|
unsigned number_of_blocks = (number_of_elements * sizeof(unsigned) - 1) / 4096;
|
||||||
for(unsigned i = 0; i < 1000; ++i) {
|
for (unsigned i = 0; i < 1000; ++i)
|
||||||
unsigned block_to_read = std::rand()%number_of_blocks;
|
{
|
||||||
off_t current_offset = block_to_read*4096;
|
unsigned block_to_read = std::rand() % number_of_blocks;
|
||||||
|
off_t current_offset = block_to_read * 4096;
|
||||||
time1 = get_timestamp();
|
time1 = get_timestamp();
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
int ret1 = fseek(fd, current_offset, SEEK_SET);
|
int ret1 = fseek(fd, current_offset, SEEK_SET);
|
||||||
int ret2 = read(fileno(fd), (char*)&single_block[0], 4096);
|
int ret2 = read(fileno(fd), (char *)&single_block[0], 4096);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __FreeBSD__
|
#ifdef __FreeBSD__
|
||||||
@ -235,42 +217,40 @@ int main (int argc, char * argv[]) {
|
|||||||
|
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
int ret1 = lseek(f, current_offset, SEEK_SET);
|
int ret1 = lseek(f, current_offset, SEEK_SET);
|
||||||
int ret2 = read(f, (char*)single_block, 4096);
|
int ret2 = read(f, (char *)single_block, 4096);
|
||||||
#endif
|
#endif
|
||||||
time2 = get_timestamp();
|
time2 = get_timestamp();
|
||||||
if( ((off_t)-1) == ret1) {
|
if (((off_t) - 1) == ret1)
|
||||||
SimpleLogger().Write(logWARNING)
|
{
|
||||||
<< "offset: " << current_offset;
|
SimpleLogger().Write(logWARNING) << "offset: " << current_offset;
|
||||||
SimpleLogger().Write(logWARNING)
|
SimpleLogger().Write(logWARNING) << "seek error " << strerror(errno);
|
||||||
<< "seek error " << strerror(errno);
|
|
||||||
throw OSRMException("seek error");
|
throw OSRMException("seek error");
|
||||||
}
|
}
|
||||||
if(-1 == ret2) {
|
if (-1 == ret2)
|
||||||
SimpleLogger().Write(logWARNING)
|
{
|
||||||
<< "offset: " << current_offset;
|
SimpleLogger().Write(logWARNING) << "offset: " << current_offset;
|
||||||
SimpleLogger().Write(logWARNING)
|
SimpleLogger().Write(logWARNING) << "read error " << strerror(errno);
|
||||||
<< "read error " << strerror(errno);
|
|
||||||
throw OSRMException("read error");
|
throw OSRMException("read error");
|
||||||
}
|
}
|
||||||
timing_results_raw_random.push_back((time2-time1)*1000.);
|
timing_results_raw_random.push_back((time2 - time1) * 1000.);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Do statistics
|
// Do statistics
|
||||||
SimpleLogger().Write(logDEBUG) << "running raw random I/O statistics";
|
SimpleLogger().Write(logDEBUG) << "running raw random I/O statistics";
|
||||||
std::ofstream random_csv("random.csv", std::ios::trunc);
|
std::ofstream random_csv("random.csv", std::ios::trunc);
|
||||||
for(unsigned i = 0; i < timing_results_raw_random.size(); ++i) {
|
for (unsigned i = 0; i < timing_results_raw_random.size(); ++i)
|
||||||
|
{
|
||||||
random_csv << i << ", " << timing_results_raw_random[i] << std::endl;
|
random_csv << i << ", " << timing_results_raw_random[i] << std::endl;
|
||||||
}
|
}
|
||||||
random_csv.close();
|
random_csv.close();
|
||||||
RunStatistics(timing_results_raw_random, stats);
|
RunStatistics(timing_results_raw_random, stats);
|
||||||
|
|
||||||
SimpleLogger().Write() << "raw random I/O: " <<
|
SimpleLogger().Write() << "raw random I/O: " << std::setprecision(5) << std::fixed
|
||||||
std::setprecision(5) << std::fixed <<
|
<< "min: " << stats.min << "ms, "
|
||||||
"min: " << stats.min << "ms, " <<
|
<< "mean: " << stats.mean << "ms, "
|
||||||
"mean: " << stats.mean << "ms, " <<
|
<< "med: " << stats.med << "ms, "
|
||||||
"med: " << stats.med << "ms, " <<
|
<< "max: " << stats.max << "ms, "
|
||||||
"max: " << stats.max << "ms, " <<
|
<< "dev: " << stats.dev << "ms";
|
||||||
"dev: " << stats.dev << "ms";
|
|
||||||
|
|
||||||
std::vector<double> timing_results_raw_seq;
|
std::vector<double> timing_results_raw_seq;
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
@ -280,81 +260,80 @@ int main (int argc, char * argv[]) {
|
|||||||
lseek(f, 0, SEEK_SET);
|
lseek(f, 0, SEEK_SET);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//read every 100th block
|
// read every 100th block
|
||||||
for(
|
for (unsigned i = 0; i < 1000; ++i)
|
||||||
unsigned i = 0;
|
{
|
||||||
i < 1000;
|
off_t current_offset = i * 4096;
|
||||||
++i
|
|
||||||
) {
|
|
||||||
off_t current_offset = i*4096;
|
|
||||||
time1 = get_timestamp();
|
time1 = get_timestamp();
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
int ret1 = fseek(fd, current_offset, SEEK_SET);
|
int ret1 = fseek(fd, current_offset, SEEK_SET);
|
||||||
int ret2 = read(fileno(fd), (char*)&single_block, 4096);
|
int ret2 = read(fileno(fd), (char *)&single_block, 4096);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __FreeBSD__
|
#ifdef __FreeBSD__
|
||||||
int ret1 = 0;
|
int ret1 = 0;
|
||||||
int ret2 = 0;
|
int ret2 = 0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
int ret1 = lseek(f, current_offset, SEEK_SET);
|
int ret1 = lseek(f, current_offset, SEEK_SET);
|
||||||
|
|
||||||
int ret2 = read(f, (char*)single_block, 4096);
|
int ret2 = read(f, (char *)single_block, 4096);
|
||||||
#endif
|
#endif
|
||||||
time2 = get_timestamp();
|
time2 = get_timestamp();
|
||||||
if( ((off_t)-1) == ret1) {
|
if (((off_t) - 1) == ret1)
|
||||||
SimpleLogger().Write(logWARNING)
|
{
|
||||||
<< "offset: " << current_offset;
|
SimpleLogger().Write(logWARNING) << "offset: " << current_offset;
|
||||||
SimpleLogger().Write(logWARNING)
|
SimpleLogger().Write(logWARNING) << "seek error " << strerror(errno);
|
||||||
<< "seek error " << strerror(errno);
|
|
||||||
throw OSRMException("seek error");
|
throw OSRMException("seek error");
|
||||||
}
|
}
|
||||||
if(-1 == ret2) {
|
if (-1 == ret2)
|
||||||
SimpleLogger().Write(logWARNING)
|
{
|
||||||
<< "offset: " << current_offset;
|
SimpleLogger().Write(logWARNING) << "offset: " << current_offset;
|
||||||
SimpleLogger().Write(logWARNING)
|
SimpleLogger().Write(logWARNING) << "read error " << strerror(errno);
|
||||||
<< "read error " << strerror(errno);
|
|
||||||
throw OSRMException("read error");
|
throw OSRMException("read error");
|
||||||
}
|
}
|
||||||
timing_results_raw_seq.push_back((time2-time1)*1000.);
|
timing_results_raw_seq.push_back((time2 - time1) * 1000.);
|
||||||
}
|
}
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
fclose(fd);
|
fclose(fd);
|
||||||
// free(single_element);
|
// free(single_element);
|
||||||
free(raw_array);
|
free(raw_array);
|
||||||
// free(single_block);
|
// free(single_block);
|
||||||
#endif
|
#endif
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
close(f);
|
close(f);
|
||||||
#endif
|
#endif
|
||||||
//Do statistics
|
// Do statistics
|
||||||
SimpleLogger().Write(logDEBUG) << "running sequential I/O statistics";
|
SimpleLogger().Write(logDEBUG) << "running sequential I/O statistics";
|
||||||
//print simple statistics: min, max, median, variance
|
// print simple statistics: min, max, median, variance
|
||||||
std::ofstream seq_csv("sequential.csv", std::ios::trunc);
|
std::ofstream seq_csv("sequential.csv", std::ios::trunc);
|
||||||
for(unsigned i = 0; i < timing_results_raw_seq.size(); ++i) {
|
for (unsigned i = 0; i < timing_results_raw_seq.size(); ++i)
|
||||||
|
{
|
||||||
seq_csv << i << ", " << timing_results_raw_seq[i] << std::endl;
|
seq_csv << i << ", " << timing_results_raw_seq[i] << std::endl;
|
||||||
}
|
}
|
||||||
seq_csv.close();
|
seq_csv.close();
|
||||||
RunStatistics(timing_results_raw_seq, stats);
|
RunStatistics(timing_results_raw_seq, stats);
|
||||||
SimpleLogger().Write() << "raw sequential I/O: " <<
|
SimpleLogger().Write() << "raw sequential I/O: " << std::setprecision(5) << std::fixed
|
||||||
std::setprecision(5) << std::fixed <<
|
<< "min: " << stats.min << "ms, "
|
||||||
"min: " << stats.min << "ms, " <<
|
<< "mean: " << stats.mean << "ms, "
|
||||||
"mean: " << stats.mean << "ms, " <<
|
<< "med: " << stats.med << "ms, "
|
||||||
"med: " << stats.med << "ms, " <<
|
<< "max: " << stats.max << "ms, "
|
||||||
"max: " << stats.max << "ms, " <<
|
<< "dev: " << stats.dev << "ms";
|
||||||
"dev: " << stats.dev << "ms";
|
|
||||||
|
|
||||||
if( boost::filesystem::exists(test_path) ) {
|
if (boost::filesystem::exists(test_path))
|
||||||
|
{
|
||||||
boost::filesystem::remove(test_path);
|
boost::filesystem::remove(test_path);
|
||||||
SimpleLogger().Write(logDEBUG) << "removing temporary files";
|
SimpleLogger().Write(logDEBUG) << "removing temporary files";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch ( const std::exception & e ) {
|
}
|
||||||
|
catch (const std::exception &e)
|
||||||
|
{
|
||||||
SimpleLogger().Write(logWARNING) << "caught exception: " << e.what();
|
SimpleLogger().Write(logWARNING) << "caught exception: " << e.what();
|
||||||
SimpleLogger().Write(logWARNING) << "cleaning up, and exiting";
|
SimpleLogger().Write(logWARNING) << "cleaning up, and exiting";
|
||||||
if(boost::filesystem::exists(test_path)) {
|
if (boost::filesystem::exists(test_path))
|
||||||
|
{
|
||||||
boost::filesystem::remove(test_path);
|
boost::filesystem::remove(test_path);
|
||||||
SimpleLogger().Write(logWARNING) << "removing temporary files";
|
SimpleLogger().Write(logWARNING) << "removing temporary files";
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user