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.