changed MAP_PRIVATE flags to MAP_SHARED when opening a column because it

seems a lot more efficient
This commit is contained in:
Celine Mercier
2016-04-22 16:26:24 +02:00
parent 003cd11362
commit ffa4557928

View File

@ -161,7 +161,14 @@ static char* build_column_file_name(const char* column_name, obiversion_t versio
// Build the file name
version_number_length = (version_number == 0 ? 1 : (int)(log10(version_number)+1));
file_name = (char*) malloc((strlen(column_name) + version_number_length + 6)*sizeof(char)); // TODO check the mallocs...
file_name = (char*) malloc((strlen(column_name) + version_number_length + 6)*sizeof(char));
if (file_name == NULL)
{
obi_set_errno(OBI_MALLOC_ERROR);
obidebug(1, "\nError allocating the memory for a column file name");
return NULL;
}
if (sprintf(file_name,"%s@%d.odc", column_name, version_number) < 0)
{
obi_set_errno(OBICOL_MEMORY_ERROR);
@ -179,6 +186,13 @@ static char* build_version_file_name(const char* column_name)
// Build the file name
file_name = (char*) malloc((strlen(column_name) + 5)*sizeof(char));
if (file_name == NULL)
{
obi_set_errno(OBI_MALLOC_ERROR);
obidebug(1, "\nError allocating the memory for a version file name");
return NULL;
}
if (sprintf(file_name,"%s.odv", column_name) < 0)
{
obi_set_errno(OBICOL_MEMORY_ERROR);
@ -809,7 +823,7 @@ OBIDMS_column_p obi_open_column(OBIDMS_p dms,
if (column_file_descriptor < 0)
{
obi_set_errno(OBICOL_UNKNOWN_ERROR);
//obidebug(1, "\nError opening column file");
obidebug(1, "\nError opening column file");
free(column_file_name);
return NULL;
}
@ -842,7 +856,7 @@ OBIDMS_column_p obi_open_column(OBIDMS_p dms,
column->header = mmap(NULL,
header_size,
PROT_READ,
MAP_PRIVATE,
MAP_SHARED,
column_file_descriptor,
0
);
@ -860,7 +874,7 @@ OBIDMS_column_p obi_open_column(OBIDMS_p dms,
column->data = mmap(NULL,
(column->header)->data_size,
PROT_READ,
MAP_PRIVATE,
MAP_SHARED,
column_file_descriptor,
header_size
);
@ -1329,12 +1343,12 @@ OBIDMS_column_header_p obi_column_get_header_from_name(OBIDMS_p dms, const char*
// Fill the header structure
header = mmap(NULL,
header_size,
PROT_READ,
MAP_SHARED,
column_file_descriptor,
0
);
header_size,
PROT_READ,
MAP_SHARED,
column_file_descriptor,
0
);
if (header == MAP_FAILED)
{