forked from enlightenment/efl
fix ref count issues on file modify while in use. lost handles and
dictionaries we depend on. SVN revision: 33894
This commit is contained in:
parent
8a3e188813
commit
20d79e8612
|
@ -668,9 +668,11 @@ eet_clearcache(void)
|
|||
}
|
||||
|
||||
for (i = 0; i < num; i++)
|
||||
{
|
||||
eet_close(closelist[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* FIXME: MMAP race condition in READ_WRITE_MODE */
|
||||
static Eet_File*
|
||||
|
@ -1134,6 +1136,7 @@ eet_open(const char *file, Eet_File_Mode mode)
|
|||
if (ef && (file_stat.st_mtime != ef->mtime))
|
||||
{
|
||||
ef->delete_me_now = 1;
|
||||
ef->references++;
|
||||
eet_close(ef);
|
||||
ef = NULL;
|
||||
}
|
||||
|
@ -1235,12 +1238,14 @@ eet_open(const char *file, Eet_File_Mode mode)
|
|||
if (ef->ed)
|
||||
{
|
||||
for (i = 0; i < ef->ed->count; ++i)
|
||||
{
|
||||
if (ef->ed->all[i].mmap)
|
||||
{
|
||||
ef->ed->all[i].str = strdup(ef->ed->all[i].mmap);
|
||||
ef->ed->all[i].mmap = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fclose(ef->fp);
|
||||
unlink(ef->path);
|
||||
|
|
Loading…
Reference in New Issue