nada
É bom sempre dizer o erro que esta dando senão fica difícil ajudar.
Não só é demais esperar que alguém rode seu código e deduza o que está acontecendo, assim como também a única pessoa que tem a perder é quem tem o problema e não facilita que lhe ajudem.
Um erro que vi por cima vendo seu código parece ser que você chama pthread_join()
logo após criar o thread, isso vai fazer com que o programa espere a finalização da thread nesse ponto e só depois continue. Ou seja, é síncrono, e de forma logica o algoritmo é o mesmo que chamar a função e rodar sem nenhuma thread, com o lado negativo que esta usando o recurso de uma thread a toa.
Outro problema é que não é passada a referencia ao novo socket para o método da thread. Então a thread calcula e não tem como retornar esse valor.