Just did a quick check through msdn, and it looks like (at least) the WaitForMultipleObjects() call can wait for a maximum of 64 objects. Given the number of threads created is nThreads * 2 + 1, it makes sense that anything over 31 will fail immediately, as the call will probably return immediately with an error rather than waiting for anything.
On the CryptHashData piece - have you tried mutexing prior to hitting CAPI to see if there is something their? In particular, are you using common hashing objects?
CHeers,
BerinMilan Tomic wrote:
Berin,
I've played a little with ThreadTest.cpp and multithreading. It seems that ThreadTest.cpp refuses to work with more than 31 thread.
I've tried to implement multithread by myself and those functions returns 0 (FALSE) sometimes (for some threads):
1. CryptHashData() (WinCAPICryptoHashHMAC.cpp) 2. CryptCreateHash() (WinCAPICryptoKeyRSA.cpp)
Do you have any idea why? I couldn't find any info about CAPI and multithreading on MSDN nor Google.
Best regards, Milan
-----Original Message-----
From: Berin Lautenbach [mailto:[EMAIL PROTECTED] Sent: Tuesday, April 06, 2004 12:05 PM
To: [EMAIL PROTECTED]
Subject: Re: Multithread
Milan,
Should be OS specific. I can't think of any in-built limits of hand - but then I must admit I've never gone looking :>. From memory I played with the threads figures on my box to find a number that balanced well.
Cheers, Berin
Milan Tomic wrote:
Thank you, Berin. Is there some limit on maximum
threads allowed
using Apache libraries (Xerces, Xalan, XSec)? ThreadTest.cpp by default use 7 threads; will it work fine with 70?
Best regards, Milan
-----Original Message----- From: Berin Lautenbach [mailto:[EMAIL PROTECTED] Sent: Saturday, April 03, 2004 5:59 AM To: [EMAIL PROTECTED] Subject: Re: Multithread
Milan,
XMLMutex is a wrapper class defined in Xerces. It provides a
very basic mutex using whatever is available on the platform in question. We used it in threadtest as the theory is it should allow the mutex code to move
from platform without having to worry about whether you are in a
pthreads/windows threads/whatever other threads environment.
Check out :
xml-xerces/c/src/xercesc/util/Mutexes.hpp
Cheers, Berin
Milan Tomic wrote:
Where can I find more info about XMLMutex class? It
is used in
XSec ThreadTest.cpp, but Xerces doesn't use it in it's
ThreadTest.cpp.
It is used when one wants to access global scope variables in multithread environment?
Thank you, Milan
