Jason Rumney <[EMAIL PROTECTED]> writes:

> Juanma Barranquero <[EMAIL PROTECTED]> writes:
>
>> (A question for process-savvy people)
>>
>> It seems like 
>>
>>>  (make-network-process :name "test" :server t :service t)
>>
>> on Windows makes the server process to call server_accept_connection()
>> continuously (in a 2.8 GHz Pentium IV I've measured around 10,200
>> calls in 3,5 s, almost 2,900 calls per second). It's no wonder Emacs
>> is munching 50% CPU.
>>
>> Any idea why that can be happening?
>
> Probably a bug in sys_select() in w32proc.c

I investigate it a little bit and found that it seems that w32 server
sockets must use WSAAsyncSelect + FD_ACCEPT to request notifications
of incoming connections -- but exactly how that is done is not for me
to look at...

In its current form, it sys_select says the socket is ready, so we
call server_accept_connection which again calls accept() which returns
-1 with errno == WSAEWOULDBLOCK (10035) indicating that there is no
pending connection to accept.

Can somebody pls. look into doing this the right way?


-- 
Kim F. Storm <[EMAIL PROTECTED]> http://www.cua.dk



_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

Reply via email to