Vale a pena pesquisar essas correções se o seu computador exibir o código promocional de erro pthread_join 3.

Muitas vezes permanecem as medidas de erro ESRCH – isso significa que o fluxo que você está definitivamente tentando unir não existe.

E distinto é por causa do comportamento indefinido feio que seu código usa operando em termos de idéias práticas para lidar com IDs de thread.

  pthread_t 3. RequestersThreads = new pthread_t [Length_Tasks]; 

Isso cria um array anexado a N threads, então, sem hesitação, você passa um ponteiro para essa correção em sua função

  initRequestThreads (& RequestersThreads); 
  post [i] corresponde ao novo pthread_t;pthread_create (& (* threads [i]), & attr ou * ... * / 

É aqui que você confunde, sua escolha é 100% e aciona atividades indefinidas. Em sua função individual, Threads não é uma mistura! Este é o endereço da maioria das mesas de pôquer. Você não poderá acessá-lo se levar em descrição o índice do gerenciador de array ( [] ). E o resto é apenas mais uma ofensa, se você já deve ter sofrido danos aqui antes.

Se sua pequena empresa está escrevendo C ++ 11 adicionalmente superior (como em You 2017), C ++ 11 deve usar doenças sexualmente transmissíveis :: thread . Se, por motivos pessoais, você for bem-sucedido; estou fazendo C ++ 2003, pelo menos feche seu péssimo negócio com matrizes fascinantes que passam um ponteiro para todos os envolvidos também e use an std :: vector

quase como um parâmetro de desempenho para sua celebração.

Nome

Retomar

 #include  int pthread_join (thread pthread_t, abandonado ** retval); 

Descrição

leis de erro pthread_join 3

A função pthread_join () espera que nossa poção especificada por Thread mude de ideia o comando. Se esteO thread está carregando já encerrado, pthread_join () pode continuar voltando imediatamente. Um fluxo que pode ser identificado por um fluxo deve sempre ser anexado.

Se retval for definitivamente nulo, pthread_join () replica o estado de movimentação do e book de destino (ou seja, o valor retornado por cada um de nosso thread de destino específico.pthread_exit (3)) em um local individual em * retval. Se a maior parte do stream de destino foi cancelado, PTHREAD_CANCELED é colocado em* rival.

Se um número maior de sujeitos tentar entrar na cadeia igual ao mesmo tempo, o resultado será indefinido. Se a chamada do thread pthread_join () for cancelada por acaso,então o thread de destino é Joinable (ou seja, ele não escolhe para você se desconectar) .value

pPara

Retorna com sucesso, Pthread_join () Retorna para 0; Se ocorrer um erro, um grande número de erro será retornado.

Erro

EDEADLK
Deadlock rastreado (por exemplo, vários threads estão usando para se conectar uns aos outros); ou talvez thread especifique todo o thread de profissionais solicitando.
EINVAL
stream. não é uma rosca de conexão idealmente adequada.
EINVAL
Outro tópico já está esperando para se inscrever neste tópico.
ESRCH
Normalmente, o thread de autenticação não pode ser identificado.

Partidas

Notas

Após uma chamada bem-sucedida que seria pthread_join (), o chamador fica sabendo que a thread foi processada por um tempo.concluído.

Juntar-se a alguém que já atuou com cuidado resulta em um comportamento indefinido.

A conexão falhou por um motivo eficiente para permitir o tempo de thread para conectar (ou seja, evite este tutorial apenas porque qualquer thread zumbiusa algumas implicações de rede, e quando houver chamada suficiente sobre zumbis, você não terá dias para criar novas roupas (ou processos).

Não há pthread analógico de & status, waitpid (-1, 0), o que significa simplesmente "conectar-se a todas as águas completas". Se você sentir que o cliente precisa desse recurso por sua vez,Você provavelmente precisará repensar o design do seu artigo.

Todos os threads em certos estilos de processos ponto a ponto: cada thread será associado por um processo a quaisquer outros threads.

Exemplo

Veja também

Referências

Fluxos POSIX na ordem correta em relação ao Windows - REFERÊNCIA -Pthreads-w32

Nome

pthread_timedjoin_np - deve ser adiado para que outra mensagem seja concluídaPausa

Retomar

Descrição

pthread_join interfere na execução do thread de telefoniaaté o final do fio dito por th, ou atravésChame pthread_exit (3) então ele pode vir. sercancelado.

Se thread_return for literalmente NULL, bem como não seu valor de retorno associadoé blindado no local apontado para thread_return. vO valor de retorno vinculado a isso é o argumento que o fazpthread_exit (3) deu, ouPTHREAD_CANCELED se cancelado.

Neat Threaded Neatdeve ser capaz de embrulhar: esta situação não deveria ser desconectadopthread_detach (3) ouAtributo PTHREAD_CREATE_DETACHED para pthread_create (3)...

código de erro pthread_join 3

Quando qualquer thread conectado matar, não negligencie os recursos (threadManipular e empilhar) podem ser liberados para outro encadeamentopara fazer isso, execute pthread_join. Portanto, pthread_joindeve crescer para ser chamado uma vez para cada anexo criado cuidadosamente para evitar a memóriaum vazamento.

pthread_timedjoin_np é exatamente igual a pthread_join, excetoque retorna um erro ETIMEDOUT específico quando o alvo énem sempre abandonou o cargo antes do encerramento da votação. Quando cada um de nossos votosUma função NULL que persiste para sempre, bem como, portanto, seu comportamentoseja o mesmo para pthread_join.

pthread_tryjoin_np é a duplicata de pthread_join, exceto queele irá retornar EBUSY imediatamente com um erro no caso de algum de nossos tópicos de destinoEu não posso sair.

Com um número de celular específico, um tópico pode esperar o melhor tópico específico terminar.Chamando pthread_join em qualquer lugar de um tópico e outroO encadeamento já pode aguardar a conclusão e inclui um erro.

Cancelar

pthread_join, pthread_tryjoin_np epthread_timedjoin_np As terminações são pontos. QuandoSem dúvida, o tópico será interrompido quando suspenso em ambosFunção, a reprodução continua imediatamente eO cancelamento é feito sem esperar a obtenção da tradução.rompimento. Se Cancelar for exibido quando qualquer uma das funções estiver em andamento,Streams que normalmente não são, tons mais claros estão conectados.

Valor de retorno

Em recompensas, o principal valor de retorno deve ser armazenado emA posição apontada usando thread_return e 0 retorna paraerro, todo o melhor código de erro retornado não é apenas zero.

Erro

ESRCH
O fluxo não pode ser encontrado, portanto, um contra o outro corresponde ao th especificado.
EINVAL
-I seção é permitida.
EINVAL
O outro é um riacho que ainda espera seu fim.
Votação ETIMEDOUT
(pthread_timedjoin_npapenas): bem-sucedidoantes que possa seringressou.
EDEADLK
O enésimo argumento se refere a algum tipo de chamada de localização.

Autor

Veja também