better fix for thumbnails getting mixed up (static int instead of rand), fixes #96
This commit is contained in:
parent
65a31bb1d1
commit
1a50217acd
@ -14,6 +14,8 @@
|
|||||||
|
|
||||||
//Asynchronous Thumbnail render & request processing
|
//Asynchronous Thumbnail render & request processing
|
||||||
|
|
||||||
|
unsigned int RequestListener::nextListenerID = 0;
|
||||||
|
|
||||||
RequestBroker::RequestBroker()
|
RequestBroker::RequestBroker()
|
||||||
{
|
{
|
||||||
thumbnailQueueRunning = false;
|
thumbnailQueueRunning = false;
|
||||||
@ -265,7 +267,7 @@ bool RequestBroker::CheckRequestListener(ListenerHandle handle)
|
|||||||
|
|
||||||
ListenerHandle RequestBroker::AttachRequestListener(RequestListener * tListener)
|
ListenerHandle RequestBroker::AttachRequestListener(RequestListener * tListener)
|
||||||
{
|
{
|
||||||
ListenerHandle handle = ListenerHandle(tListener->ListenerRand, tListener);
|
ListenerHandle handle = ListenerHandle(tListener->ListenerID, tListener);
|
||||||
pthread_mutex_lock(&listenersMutex);
|
pthread_mutex_lock(&listenersMutex);
|
||||||
validListeners.push_back(handle);
|
validListeners.push_back(handle);
|
||||||
pthread_mutex_unlock(&listenersMutex);
|
pthread_mutex_unlock(&listenersMutex);
|
||||||
@ -282,7 +284,7 @@ void RequestBroker::DetachRequestListener(RequestListener * tListener)
|
|||||||
std::vector<ListenerHandle>::iterator iter = validListeners.begin();
|
std::vector<ListenerHandle>::iterator iter = validListeners.begin();
|
||||||
while (iter != validListeners.end())
|
while (iter != validListeners.end())
|
||||||
{
|
{
|
||||||
if(*iter == ListenerHandle(tListener->ListenerRand, tListener))
|
if(*iter == ListenerHandle(tListener->ListenerID, tListener))
|
||||||
iter = validListeners.erase(iter);
|
iter = validListeners.erase(iter);
|
||||||
else
|
else
|
||||||
++iter;
|
++iter;
|
||||||
|
@ -3,8 +3,9 @@
|
|||||||
class RequestListener
|
class RequestListener
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
int ListenerRand;
|
static unsigned int nextListenerID;
|
||||||
RequestListener() { ListenerRand = rand(); }
|
int ListenerID;
|
||||||
|
RequestListener() { ListenerID = nextListenerID++; }
|
||||||
virtual ~RequestListener() {}
|
virtual ~RequestListener() {}
|
||||||
|
|
||||||
virtual void OnResponseReady(void * response, int identifier) {}
|
virtual void OnResponseReady(void * response, int identifier) {}
|
||||||
|
Reference in New Issue
Block a user