From 0c061f2a2757384fb4f43c2462f649a1ba5a6c9e Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Fri, 2 Oct 2009 11:47:29 +0200 Subject: [PATCH] encodingstest: fix multi-threading issue Signed-off-by: Johannes Schindelin --- test/encodingstest.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/test/encodingstest.c b/test/encodingstest.c index fc82348..bef30a8 100644 --- a/test/encodingstest.c +++ b/test/encodingstest.c @@ -191,11 +191,13 @@ static void* clientLoop(void* data) { return NULL; } +static pthread_t all_threads[NUMBER_OF_ENCODINGS_TO_TEST]; +static int thread_counter; + static void startClient(int encodingIndex,rfbScreenInfo* server) { rfbClient* client=rfbGetClient(8,3,4); clientData* cd; - pthread_t clientThread; - + client->clientData=malloc(sizeof(clientData)); client->MallocFrameBuffer=resize; client->GotFrameBufferUpdate=update; @@ -210,7 +212,7 @@ static void startClient(int encodingIndex,rfbScreenInfo* server) { lastUpdateRect.x2=server->width; lastUpdateRect.y2=server->height; - pthread_create(&clientThread,NULL,clientLoop,(void*)client); + pthread_create(&all_threads[thread_counter++],NULL,clientLoop,(void*)client); } /* Here begin the server functions */ @@ -334,8 +336,10 @@ int main(int argc,char** argv) } #endif - free(server->frameBuffer); rfbScreenCleanup(server); + for(i=0;iframeBuffer); rfbLog("Statistics:\n"); for(i=0;i