X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=inline;f=AcessNative%2Facesskernel_src%2Fserver.c;h=0cede83c38a64d1fcfe0e2dd237b943d5790935c;hb=f737fb47a583fca5c922604d419ab744609308df;hp=725a326bd283ba2b48378ac4ac7d6151b5347cf6;hpb=7f80ab30017689efe0aaaab18abc7ceda689d859;p=tpg%2Facess2.git diff --git a/AcessNative/acesskernel_src/server.c b/AcessNative/acesskernel_src/server.c index 725a326b..0cede83c 100644 --- a/AcessNative/acesskernel_src/server.c +++ b/AcessNative/acesskernel_src/server.c @@ -118,6 +118,7 @@ int Server_WorkerThread(void *ClientPtr) tRequestHeader errorHeader; int retSize = 0; int sentSize; + int cur_client_id = 0; #if USE_TCP #else @@ -127,6 +128,11 @@ int Server_WorkerThread(void *ClientPtr) while( Client->CurrentRequest == NULL ) SDL_CondWait(Client->WaitFlag, Client->Mutex); + if(Client->ClientID != cur_client_id) { + Threads_SetThread( Client->ClientID ); + cur_client_id = Client->ClientID; + } + Log_Debug("AcessSrv", "Worker %i takes %p", Client->ClientID, Client->CurrentRequest); @@ -245,9 +251,11 @@ int SyscallServer(void) tRequestHeader *req = (void*)data; struct sockaddr_in addr; uint clientSize = sizeof(addr); - int length = recvfrom(gSocket, data, BUFSIZ, 0, (struct sockaddr*)&addr, &clientSize); + int length; tClient *client; + length = recvfrom(gSocket, data, BUFSIZ, 0, (struct sockaddr*)&addr, &clientSize); + if( length == -1 ) { perror("SyscallServer - recv"); break;