void ofxEmscriptenURLFileLoader::onerror_file_cb(unsigned, void* request, int status){
	ofHttpResponse response;
	response.status = status;
	response.request = *(ofHttpRequest*)request;
	ofNotifyEvent(ofURLResponseEvent(),response);
	delete (ofHttpRequest*)request;
}
void ofxEmscriptenURLFileLoader::onload_file_cb(unsigned, void* request, const char* file){
	ofHttpResponse response;
	response.status = 200;
	response.request = *(ofHttpRequest*)request;
	ofNotifyEvent(ofURLResponseEvent(),response);
	delete (ofHttpRequest*)request;
}
void ofxEmscriptenURLFileLoader::onload_cb(unsigned, void* request, void* data, unsigned int size){
	ofHttpResponse response;
	response.data.set((const char*)data,size);
	response.status = 200;
	response.request = *(ofHttpRequest*)request;
	ofNotifyEvent(ofURLResponseEvent(),response);
	delete (ofHttpRequest*)request;
}
//--------------------------------------------------------------
ofxThreadedImageLoaderSingleton::ofxThreadedImageLoaderSingleton() 
:ofThread()
{
	nextID = 0;
    ofAddListener(ofEvents().update, this, &ofxThreadedImageLoaderSingleton::update);
	ofAddListener(ofURLResponseEvent(),this,&ofxThreadedImageLoaderSingleton::urlResponse);
    
    startThread();
    lastUpdate = 0;
}
ofxThreadedImageLoader::ofxThreadedImageLoader() 
:ofThread()
{
    nextID = 0;
//    Poco::Thread& pocoThread =  getPocoThread();
//    pocoThread.setName("ofxThreadedImageLoader" + ofToString(nextID));
//	
    ofAddListener(ofEvents().update, this, &ofxThreadedImageLoader::update);
	ofAddListener(ofURLResponseEvent(),this,&ofxThreadedImageLoader::urlResponse);
    
    startThread();
    lastUpdate = 0;
}
ofxThreadedImageLoaderSingleton::~ofxThreadedImageLoaderSingleton(){
	condition.signal();
    ofRemoveListener(ofEvents().update, this, &ofxThreadedImageLoaderSingleton::update);
	ofRemoveListener(ofURLResponseEvent(),this,&ofxThreadedImageLoaderSingleton::urlResponse);
}