Force stack re-alignment for entry-points from phread_create with mingw & windows to fix SSE crashes in child threads
This commit is contained in:
parent
7e9c507e64
commit
a629eb9bfc
@ -173,7 +173,15 @@
|
|||||||
#define TPT_INLINE inline
|
#define TPT_INLINE inline
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if
|
||||||
|
|
||||||
#define SDEUT
|
#define SDEUT
|
||||||
//#define REALHEAT
|
//#define REALHEAT
|
||||||
|
|
||||||
|
#if defined(WIN) && defined(__GNUC__)
|
||||||
|
#define TH_ENTRY_POINT __attribute__((force_align_arg_pointer))
|
||||||
|
#else
|
||||||
|
#define TH_ENTRY_POINT
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif /* CONFIG_H */
|
#endif /* CONFIG_H */
|
||||||
|
@ -141,7 +141,7 @@ void RequestBroker::RetrieveImage(std::string imageUrl, int width, int height, R
|
|||||||
assureRunning();
|
assureRunning();
|
||||||
}
|
}
|
||||||
|
|
||||||
void * RequestBroker::thumbnailQueueProcessHelper(void * ref)
|
TH_ENTRY_POINT void * RequestBroker::thumbnailQueueProcessHelper(void * ref)
|
||||||
{
|
{
|
||||||
((RequestBroker*)ref)->thumbnailQueueProcessTH();
|
((RequestBroker*)ref)->thumbnailQueueProcessTH();
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -29,7 +29,7 @@ bool SearchModel::GetShowTags()
|
|||||||
return showTags;
|
return showTags;
|
||||||
}
|
}
|
||||||
|
|
||||||
void * SearchModel::updateSaveListTHelper(void * obj)
|
TH_ENTRY_POINT void * SearchModel::updateSaveListTHelper(void * obj)
|
||||||
{
|
{
|
||||||
return ((SearchModel *)obj)->updateSaveListT();
|
return ((SearchModel *)obj)->updateSaveListT();
|
||||||
}
|
}
|
||||||
|
@ -127,7 +127,7 @@ void Gravity::gravity_update_async()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void *Gravity::update_grav_async_helper(void * context)
|
TH_ENTRY_POINT void *Gravity::update_grav_async_helper(void * context)
|
||||||
{
|
{
|
||||||
((Gravity *)context)->update_grav_async();
|
((Gravity *)context)->update_grav_async();
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -122,7 +122,7 @@ void Task::after()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void * Task::doWork_helper(void * ref)
|
TH_ENTRY_POINT void * Task::doWork_helper(void * ref)
|
||||||
{
|
{
|
||||||
bool newSuccess = ((Task*)ref)->doWork();
|
bool newSuccess = ((Task*)ref)->doWork();
|
||||||
pthread_mutex_lock(&((Task*)ref)->taskMutex);
|
pthread_mutex_lock(&((Task*)ref)->taskMutex);
|
||||||
|
Reference in New Issue
Block a user