код прибивания нитей
shutdown(_cx_socket[i], 2);
_cx_socket[i] = 0;
printf("[A]\n");
pthread_cancel(_cx_pthread[i]);
printf("[B]\n");
....
здесь нити порождаются:
pthread_create(&(_cx_pthread[i]), NULL, funcClientWatch, &(_cx_index[i]));
В цикле по i вызывается кусок "прибивания" нитей.
В частности, выполняется pthread_cancel().
Однако, оно зависает, выдав:
[A]
[B]
[A]
<тут висит>
По какой причине это может быть?