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