emacs-devel
[Top][All Lists]
Advanced

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

Re: Asynchronous DNS


From: Alain Schneble
Subject: Re: Asynchronous DNS
Date: Mon, 15 Feb 2016 01:14:51 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (windows-nt)

Eli Zaretskii <address@hidden> writes:

>> From: Lars Ingebrigtsen <address@hidden>
>> Cc: address@hidden,  address@hidden
>> Date: Sun, 14 Feb 2016 18:01:39 +1100
>> 
>> The issue is losing asynchronicity.  A function that previously called
>> 
>> (progn
>>   (make-network-stream ... :nowait t)
>>   (set-process-coding-system ...))
>> 
>> would not block.  With the proposed blockers (unless we add fine-grained
>> code to all the process function to only block if we haven't even done
>> DNS yet), this code will block.  And that's a regression.
>
> If set-process-coding-system worked in the above snippet, it means it
> doesn't need to block waiting for a fully capable process object.  If
> it didn't work (as in signaled an error), then there's no regression.

set-process-coding-system, how it is currently implemented on master,
requires valid infd/outfd, hence an initialized socket.
make-network-process until now did initialize a socket also with :nowait
t.  That is no longer the case in the feature/async-dns branch with the
:nowait 'dns option, where make-network-stream returns without having
initialized a socket.  In the
"Make-process-functions-wait-for-DNS-completion" patch I sent in the
previous message, set-process-coding-system now waits until the socket
has been initialized.  Thus, there should no longer be any regressions
in this case.




reply via email to

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