strange pthread_create cap

Ross Johnson Ross.Johnson@homemail.com.au
Wed Sep 2 14:36:00 GMT 2009


...but, in any case, failing to open sockets should not cause 
pthread_create itself to return EAGAIN.

Ross Johnson wrote:
> Hi Laura,
>
> 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.
>
> Ross
>
> Laura Arhire wrote:
>> Hello
>>
>> 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 
>> resources.
>>
>> 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 
>> returns) ?
>>
>> Thank you in advance,
>> Laura
>



More information about the Pthreads-win32 mailing list