This is the mail archive of the
mailing list for the pthreas-win32 project.
Re: strange pthread_create cap
...but, in any case, failing to open sockets should not cause
pthread_create itself to return EAGAIN.
Ross Johnson wrote:
Pthread_create can return EAGAIN for several reasons, all to do with
lack of resources, such as memory allocation (unlikely), or failing to
start the underlying Windows native thread, e.g. due to a lack of
resources there as well.
I don't know Windows well enough but I'm wondering if your listening
server sockets are really closing down, or perhaps just not quickly
enough. What happens if you add a short delay between creating
threads, i.e. opening new sockets?
Also, are you testing on a Windows Server or Windows Workstation? I
ask because, IIRC and if my information is not out-of-date,
workstations have a limit (10) on the number of sockets that can be
listening at the same time.
Laura Arhire wrote:
I'm having some trouble with pthreads-win and sockets, wondering if
anyone can help. I have a test setup with a loop which iterates a
number of times. Inside the loop, I create a thread on which I run an
SSL server socket. After the thread is created, I connect an SSL
Client socket to the server socket, then disconnect it, disconnect
the server socket, and issue a pthread_join.
Using this setup (one thread created with pthread_create at any
time), I cannot create anymore threads after 10-15 such iterations
(in rare cases - say if I run a 200-iteration loop, I might be able
to create threads again once I reach iteration 50 or so). I believe
this to be an issue with my SSL client socket implementation, because
everything works well if I don't connect a client socket during the
iteration. It also works well if I use a non-SSL server/client socket.
However, I thought I'd ask here: is there any reason why
pthread_create would return EAGAIN in such a setup? The handle count
varies very slightly during the iterations but does not increase over
the run time. The memory does increase due to my test setup, but at
the maximum peak it is no where near close to using up all system
Can it be some sort of problem with the release of the socket (win
sockets are not guaranteed to be released as soon as closesocket
Thank you in advance,