changed MAP_PRIVATE flags to MAP_SHARED when opening a column because it
seems a lot more efficient
This commit is contained in:
@ -161,7 +161,14 @@ static char* build_column_file_name(const char* column_name, obiversion_t versio
|
|||||||
|
|
||||||
// Build the file name
|
// Build the file name
|
||||||
version_number_length = (version_number == 0 ? 1 : (int)(log10(version_number)+1));
|
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)
|
if (sprintf(file_name,"%s@%d.odc", column_name, version_number) < 0)
|
||||||
{
|
{
|
||||||
obi_set_errno(OBICOL_MEMORY_ERROR);
|
obi_set_errno(OBICOL_MEMORY_ERROR);
|
||||||
@ -179,6 +186,13 @@ static char* build_version_file_name(const char* column_name)
|
|||||||
|
|
||||||
// Build the file name
|
// Build the file name
|
||||||
file_name = (char*) malloc((strlen(column_name) + 5)*sizeof(char));
|
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)
|
if (sprintf(file_name,"%s.odv", column_name) < 0)
|
||||||
{
|
{
|
||||||
obi_set_errno(OBICOL_MEMORY_ERROR);
|
obi_set_errno(OBICOL_MEMORY_ERROR);
|
||||||
@ -809,7 +823,7 @@ OBIDMS_column_p obi_open_column(OBIDMS_p dms,
|
|||||||
if (column_file_descriptor < 0)
|
if (column_file_descriptor < 0)
|
||||||
{
|
{
|
||||||
obi_set_errno(OBICOL_UNKNOWN_ERROR);
|
obi_set_errno(OBICOL_UNKNOWN_ERROR);
|
||||||
//obidebug(1, "\nError opening column file");
|
obidebug(1, "\nError opening column file");
|
||||||
free(column_file_name);
|
free(column_file_name);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
@ -842,7 +856,7 @@ OBIDMS_column_p obi_open_column(OBIDMS_p dms,
|
|||||||
column->header = mmap(NULL,
|
column->header = mmap(NULL,
|
||||||
header_size,
|
header_size,
|
||||||
PROT_READ,
|
PROT_READ,
|
||||||
MAP_PRIVATE,
|
MAP_SHARED,
|
||||||
column_file_descriptor,
|
column_file_descriptor,
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
@ -860,7 +874,7 @@ OBIDMS_column_p obi_open_column(OBIDMS_p dms,
|
|||||||
column->data = mmap(NULL,
|
column->data = mmap(NULL,
|
||||||
(column->header)->data_size,
|
(column->header)->data_size,
|
||||||
PROT_READ,
|
PROT_READ,
|
||||||
MAP_PRIVATE,
|
MAP_SHARED,
|
||||||
column_file_descriptor,
|
column_file_descriptor,
|
||||||
header_size
|
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
|
// Fill the header structure
|
||||||
header = mmap(NULL,
|
header = mmap(NULL,
|
||||||
header_size,
|
header_size,
|
||||||
PROT_READ,
|
PROT_READ,
|
||||||
MAP_SHARED,
|
MAP_SHARED,
|
||||||
column_file_descriptor,
|
column_file_descriptor,
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
|
|
||||||
if (header == MAP_FAILED)
|
if (header == MAP_FAILED)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user