logo
Contato | Sobre...        
rebarba rebarba

Rodrigo Strauss :: Blog

follow us in feedly

E o bug é....

O bug está no uso incorreto da função WaitForMultipleObjects:

DWORD WINAPI WaitForMultipleObjects(
  __in  DWORD nCount,
  __in  const HANDLE *lpHandles,
  __in  BOOL bWaitAll,
  __in  DWORD dwMilliseconds
);

Parameters:

nCount [in]:The number of object handles in the array pointed to by lpHandles. The maximum number of object handles is MAXIMUM_WAIT_OBJECTS.

Vendo o valor de MAXIMUM_WAIT_OBJECTS em winnt.h:

#define MAXIMUM_WAIT_OBJECTS 64     // Maximum number of wait objects

E no meu post:


 static const DWORD threadCount = 100;

...


//
// esperando TODAS as threads retornarem
//             |___________________________________
//                                                 |
//                                                 v
//
WaitForMultipleObjects(threadCount, &threads[0], TRUE, INFINITE);


Não podemos esperar 100 threads de uma vez só. Agora sabemos que o programa não espera todas as threads terminarem antes de mostrar o resultado.


Em 24/09/2008 01:23, por Rodrigo Strauss


  
 
 
Comentários
Fernando Roberto | website | e-mail | em 25/09/2008 | #
Um gancho perfeito para a mesma história, só que em Kernel Mode.

http://www.driverentry.com.br/blog/2008/02/kewaitformultiple...

[]s,
Fernando.
Algo a dizer?
Nome:


Site:


E-mail:


Escreva o número vinte e seis:


 Não mostre meu e-mail no site, não serve pra nada mesmo...

Comentário





Os comentários devem ser sobre assuntos relativos ao post, eu provavelmente apagarei comentários totalmente offtopic. Se quiser me enviar uma mensagem, use o formulário de contato. E não esqueça: isso é um site pessoal e eu me reservo o direito de apagar qualquer comentário ofensivo ou inapropriado.
rebarba rebarba
  ::::