Deutsch   English   Français   Italiano  
<vr29lo$25gok$2@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com>
Newsgroups: comp.lang.c
Subject: Re: Python recompile
Date: Fri, 14 Mar 2025 15:13:12 -0700
Organization: A noiseless patient Spider
Lines: 37
Message-ID: <vr29lo$25gok$2@dont-email.me>
References: <vq1qas$j22$1@gallifrey.nk.ca> <20250309012626.00001276@yahoo.com>
 <vqiugc$dv5o$2@dont-email.me> <vql9fu$vluh$1@dont-email.me>
 <vqlfrj$10rr4$2@dont-email.me> <vqli6g$114cj$3@dont-email.me>
 <vqm0b9$179ca$1@dont-email.me> <vqnfvp$1gsl4$2@dont-email.me>
 <20250310135828.116@kylheku.com> <vqnkdq$1gsl4$6@dont-email.me>
 <vqnmbn$1i1s0$6@dont-email.me> <vqnmig$1ie8j$2@dont-email.me>
 <vqns51$1jibk$5@dont-email.me> <vqo5hd$1lant$1@dont-email.me>
 <vqo9df$1ls6a$2@dont-email.me> <vqoe8o$1qblf$1@dont-email.me>
 <vqolqv$1rfnf$5@dont-email.me> <vqq8v2$262gq$1@dont-email.me>
 <vqqf3r$273mt$6@dont-email.me> <vqqjra$286h8$2@dont-email.me>
 <vqqlff$28fls$7@dont-email.me> <vqqtjv$2a3dv$1@dont-email.me>
 <vqqu21$2a18r$3@dont-email.me> <vqr25u$2eit2$1@dont-email.me>
 <vqras6$2fsqk$1@dont-email.me> <vqtq8v$33itc$1@dont-email.me>
 <vqvfl6$3rsid$2@dont-email.me> <vqvqmq$49pc$1@dont-email.me>
 <vr01sp$9jrt$2@dont-email.me> <vr212d$1uc77$1@dont-email.me>
 <vr2163$1u9a6$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 14 Mar 2025 23:13:13 +0100 (CET)
Injection-Info: dont-email.me; posting-host="20df43b50ab9261545a619b97260a04e";
	logging-data="2278164"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1+j4sU0pjft6MghhnhYsSKkdDQa+eiXoJo="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:QlIKmdVw6qrtb9hPvxj3+R9jmpI=
In-Reply-To: <vr2163$1u9a6$1@dont-email.me>
Content-Language: en-US
Bytes: 3787

On 3/14/2025 12:48 PM, Chris M. Thomasson wrote:
> On 3/14/2025 12:46 PM, Chris M. Thomasson wrote:
>> On 3/13/2025 6:48 PM, Lawrence D'Oliveiro wrote:
>>> On Thu, 13 Mar 2025 16:45:28 -0700, Chris M. Thomasson wrote:
>>>
>>>> I have no idea how the Python dev's use IOCP with sockets.
>>>
>>> They can’t figure out a way to support file I/O notifiers (of the kind
>>> commonly used with event loops) with it. If you know of a way to do it,
>>> please tell us.
>>
>> Well, usually, iirc, been a while, when GQCSEX returns we take the 
>> WSAOVERLAPPED and convert it to our extended structure. 

The fun part is that GQCSEX can return multiple overlapped structures at 
once. This lends itself to a kind of "staged server" design where we 
sort them into reads, writes, connects, accepts, ect... Then send the 
completions to the logic threads for user processing in batches, then 
immediately continue on with the server loop wrt the IOCP. Actually, the 
futex mutex experiment I posted earlier in this group is rather ideal 
for that...



> Basically 
>> similar to how Linux uses offsetof to extend node structures, or on 
>> Windows CONTAINING_RECORD, then we can use that to pass into a 
>> function called on_read, on_write, on_accept, on_connect, ect... type 
>> of functions. Now, this is an interesting point. I remember where 
>> calling the event handler in an IO thread can be an issue if its going 
>> into "generic" user code. So, sometimes I would pass the events to 
>> another lock-free queue/stack, whatever so the "logic" threads get to 
>> work on it. The logic threads are different than the IO threads.
> 
> You don't want to use a separate IOCP for the "logic" threads because it 
> uses non-paged memory. So, a lock-free queue/stack is the way to go.