[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.
>