bug-prolog
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problem with select/5 on AF_INET sockets with Windows 7


From: Fx
Subject: Re: Problem with select/5 on AF_INET sockets with Windows 7
Date: Thu, 19 Feb 2015 19:58:56 +0100

Daniel,

Thank you very much for your answer, and this is a great news for 1.4.5 !!!

I’ll be patient and wait for the official distribution.


Regards,

François-Xavier.


Le 17 févr. 2015 à 13:32, Daniel Diaz <address@hidden> a écrit :

> Hi,
> 
> sorry for the late reply. Thank you for this bug report.
> 
> The bug is fixed in the last git version. Will be fixed in next 1.4.5
> 
> Daniel
> 
> 
> 
> Le 27/01/2015 12:44, address@hidden a écrit :
>> Dear Daniel,
>> 
>> I am working on a specific http server for gnu prolog (1.4.4), and i 
>> discovered
>> a strange comportment under windows 7 (32) with the select/5 predicate.
>> 
>> The simple test below works fine on a OSX (maybe all unix) system but will
>> return a system error under Windos 7 (32) , "Bad File Descriptor":
>> 
>> ERROR : Failed to start server : error(system_error(Bad file
>> descriptor),select/5)
>> 
>> To test, launch one of the two test cases and open an internet browser to
>> http://127.0.0.1:8080/ for example, or change the 127.0.0.1 by your IP.
>> 
>> %- Program Test with Select -----------------------------------
>> 
>> worker_run(Socket, Client, StreamIn, StreamOut):- write('i am a working 
>> worker
>> ...'), nl.
>> 
>> server_test_with_select:-
>>      socket('AF_INET', Socket),
>>      socket_bind(Socket, 'AF_INET'(Host, 8080)),
>>      socket_listen(Socket,10),
>>      catch(  server_loop_with_select(Socket),E,
>>               (      socket_close(Socket),
>>                      format( "ERROR : Failed to start server : ~w~n", [E] )
>>      )).
>> 
>> server_loop_with_select(Socket):-
>>      repeat,
>>              select([Socket],ReadyReads,[Socket],[],0),
>>              worker_run(Socket, Client, StreamIn, StreamOut),
>>      fail.
>> 
>> %- End of Program Test with Select -----------------------------------
>> 
>> When not using usefull select/5 and directly use the socket_accept/4 
>> predicate
>> the server works well.
>> 
>> 
>> %- Program Test without Select -----------------------------------
>> 
>> worker_run(Socket, Client, StreamIn, StreamOut):- write('i am a working 
>> worker
>> ...'), nl.
>> 
>> server_test_without_select:-
>>      socket('AF_INET', Socket),
>>      socket_bind(Socket, 'AF_INET'(Host, 8080)),
>>      socket_listen(Socket,10),
>>      catch(  server_loop_without_select(Socket),E,
>>               (      socket_close(Socket),
>>                      format( "ERROR : Failed to start server : ~w~n", [E] )
>>      )).
>> 
>> server_loop_without_select(Socket):-
>>      repeat,
>>              socket_accept(Socket, Client, StreamIn, StreamOut),
>>              worker_run(Socket, Client, StreamIn, StreamOut),
>>      fail.
>> 
>> %- End of Program Test without Select -----------------------------------
>> 
>> 
>> Is it a known bug and did you plan to fix it in a future version ?
>> 
>> 
>> Best Regards,
>> 
>> Fx NION.
>> 
>> 
>> _______________________________________________
>> Bug-prolog mailing list
>> address@hidden
>> https://lists.gnu.org/mailman/listinfo/bug-prolog
>> 
> 
> 
> -- 
> Ce message a ete verifie par MailScanner
> pour des virus ou des polluriels et rien de
> suspect n'a ete trouve.
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]