Nada

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.