fixed: thread locking problem in Image: method Lock() was used instead of Winix::Lock object
This commit is contained in:
parent
486067a4b2
commit
0e0c006d5a
|
@ -267,7 +267,7 @@ bool end;
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
class Lock lock_object(synchro);
|
Winix::Lock lock_object(synchro);
|
||||||
|
|
||||||
if( i != image_tab.end() )
|
if( i != image_tab.end() )
|
||||||
{
|
{
|
||||||
|
@ -412,18 +412,13 @@ void Image::CreateTmpFileName()
|
||||||
// second thread (objects are not locked)
|
// second thread (objects are not locked)
|
||||||
bool Image::CreateCommand()
|
bool Image::CreateCommand()
|
||||||
{
|
{
|
||||||
class Lock lock_object(synchro);
|
Winix::Lock lock_object(synchro);
|
||||||
|
|
||||||
// iq.SetAll(true, false);
|
// iq.SetAll(true, false);
|
||||||
// iq.WhereId(item_work.file_id);
|
// iq.WhereId(item_work.file_id);
|
||||||
|
|
||||||
morm::Finder<Item> finder(model_connector);
|
morm::Finder<Item> finder(model_connector);
|
||||||
|
file_work = finder.select().where().eq(L"id", item_work.file_id).get();
|
||||||
{
|
|
||||||
// IMPROVEME we need a seperate model_connector for this thread
|
|
||||||
Lock();
|
|
||||||
file_work = finder.select().where().eq(L"id", item_work.file_id).get();
|
|
||||||
}
|
|
||||||
|
|
||||||
// the file could have been changed especially when there is a long queue of files
|
// the file could have been changed especially when there is a long queue of files
|
||||||
if( !file_work.found() )
|
if( !file_work.found() )
|
||||||
|
@ -495,13 +490,9 @@ void Image::ImageSavedCorrectly()
|
||||||
{
|
{
|
||||||
file_work.item_content.file_has_thumb = true;
|
file_work.item_content.file_has_thumb = true;
|
||||||
|
|
||||||
{
|
file_work.propagate_connector();
|
||||||
// IMPROVEME we need a separate model_connector for this thread
|
file_work.item_content.update(false);
|
||||||
Lock();
|
//db->EditHasThumbById(true, file_work.id);
|
||||||
file_work.propagate_connector();
|
|
||||||
file_work.item_content.update(false);
|
|
||||||
//db->EditHasThumbById(true, file_work.id);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
log << log3 << "Image: generated a thumbnail: " << dst_path << logend;
|
log << log3 << "Image: generated a thumbnail: " << dst_path << logend;
|
||||||
|
@ -540,19 +531,15 @@ void Image::ImageSavedCorrectly()
|
||||||
// second thread (objects are not locked)
|
// second thread (objects are not locked)
|
||||||
void Image::SaveImage()
|
void Image::SaveImage()
|
||||||
{
|
{
|
||||||
class Lock lock_object(synchro);
|
Winix::Lock lock_object(synchro);
|
||||||
|
|
||||||
// the file could have been changed especially when creating the image lasted too long
|
// the file could have been changed especially when creating the image lasted too long
|
||||||
//iq.SetAll(true, false);
|
//iq.SetAll(true, false);
|
||||||
//iq.WhereId(item_work.file_id);
|
//iq.WhereId(item_work.file_id);
|
||||||
|
|
||||||
morm::Finder<Item> finder(model_connector);
|
morm::Finder<Item> finder(model_connector);
|
||||||
|
file_work = finder.select().where().eq(L"id", item_work.file_id).get();
|
||||||
|
|
||||||
{
|
|
||||||
// IMPROVEME we need a seperate model_connector for this thread
|
|
||||||
Lock();
|
|
||||||
file_work = finder.select().where().eq(L"id", item_work.file_id).get();
|
|
||||||
}
|
|
||||||
|
|
||||||
// the file could have been changed especially when there is a long queue of files
|
// the file could have been changed especially when there is a long queue of files
|
||||||
if( !file_work.found() )
|
if( !file_work.found() )
|
||||||
|
@ -603,7 +590,6 @@ void Image::CreateImage()
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
class Lock lock_object(synchro);
|
|
||||||
log << log3 << "Image: some problems with creating an image"
|
log << log3 << "Image: some problems with creating an image"
|
||||||
<< ", 'convert' process returned: " << res << logend;
|
<< ", 'convert' process returned: " << res << logend;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue