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: Paulo Moura
Subject: Re: Problem with select/5 on AF_INET sockets with Windows 7
Date: Thu, 19 Feb 2015 19:00:28 +0000

> On 19/02/2015, at 18:58, Fx <address@hidden> wrote:
> 
> 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.

Don't be patient. Help instead beta-testing 1.4.5.

Cheers,

Paulo


> 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.
>> 
> 
> 
> _______________________________________________
> Bug-prolog mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/bug-prolog

-----------------------------------------------------------------
Paulo Moura
Logtalk developer

Email: <mailto:address@hidden>
Web:   <http://logtalk.org/>
-----------------------------------------------------------------







reply via email to

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