better fix for thumbnails getting mixed up (static int instead of rand), fixes #96

This commit is contained in:
jacob1 2015-01-10 15:45:35 -05:00
parent 65a31bb1d1
commit 1a50217acd
2 changed files with 7 additions and 4 deletions

View File

@ -14,6 +14,8 @@
//Asynchronous Thumbnail render & request processing
unsigned int RequestListener::nextListenerID = 0;
RequestBroker::RequestBroker()
{
thumbnailQueueRunning = false;
@ -265,7 +267,7 @@ bool RequestBroker::CheckRequestListener(ListenerHandle handle)
ListenerHandle RequestBroker::AttachRequestListener(RequestListener * tListener)
{
ListenerHandle handle = ListenerHandle(tListener->ListenerRand, tListener);
ListenerHandle handle = ListenerHandle(tListener->ListenerID, tListener);
pthread_mutex_lock(&listenersMutex);
validListeners.push_back(handle);
pthread_mutex_unlock(&listenersMutex);
@ -282,7 +284,7 @@ void RequestBroker::DetachRequestListener(RequestListener * tListener)
std::vector<ListenerHandle>::iterator iter = validListeners.begin();
while (iter != validListeners.end())
{
if(*iter == ListenerHandle(tListener->ListenerRand, tListener))
if(*iter == ListenerHandle(tListener->ListenerID, tListener))
iter = validListeners.erase(iter);
else
++iter;

View File

@ -3,8 +3,9 @@
class RequestListener
{
public:
int ListenerRand;
RequestListener() { ListenerRand = rand(); }
static unsigned int nextListenerID;
int ListenerID;
RequestListener() { ListenerID = nextListenerID++; }
virtual ~RequestListener() {}
virtual void OnResponseReady(void * response, int identifier) {}