Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: "Chris M. Thomasson" Newsgroups: comp.lang.c Subject: Re: best approach for multithreading (?) Date: Sat, 7 Dec 2024 20:36:24 -0800 Organization: A noiseless patient Spider Lines: 38 Message-ID: References: <20241201074928.161@kylheku.com> <20241203094647.518@kylheku.com> <20241205191339.256@kylheku.com> <3mF4P.64$pAh5.41@fx06.iad> <20241207044414.446@kylheku.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Sun, 08 Dec 2024 05:36:24 +0100 (CET) Injection-Info: dont-email.me; posting-host="021479c43f8aee38ea8f1e7f736414c6"; logging-data="3615204"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/S4pm1HIgi+Y7XzaaHpRdCLifF6V2A9Gk=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:LbK7xI1v3syslyiXSYi3c8sOSFY= In-Reply-To: <20241207044414.446@kylheku.com> Content-Language: en-US Bytes: 3117 On 12/7/2024 7:49 PM, Kaz Kylheku wrote: > On 2024-12-07, James Kuyper wrote: >> On 12/6/24 11:10, Scott Lurndal wrote: >>> Kaz Kylheku <643-408-1753@kylheku.com> writes: >>>> On 2024-12-06, James Kuyper wrote: >> ... >>>>> C can be implemented as a thin wrapper over POSIX threads. >>>>> The waste is relatively negligible. The differences, were intended to >>>>> allow to also be implemented on non-POSIX systems as >>>>> wrappers for whatever the native threading system was. >>>> >>>> Generally speaking, you can have a function called pthread_create on >>>> non-POSIX systems, and a header . >>> >>> There are certain requirements of a posix threads implementation that >>> might be impossible for a non-POSIX system to implement efficiently; >>> windows, for example, doesn't support signals. >> >> My words above not-withstanding, I am not in any sense an expert on any >> kind of threading, nor of Windows. What does POSIX require of threads >> with regards to signals? > > Off the top of my head, the highlights: > > - threads have their own signal masks, inherited from the creator which > calls pthtead_create. > - signal masks can be manipulated so that a given signal will be > handled in the context of a desired thread. > - sigwait (and several other functions) can be used by a thread to > wait for one or more signals, allowing signals to be process > synchronously, somewhat like message passing. > Semaphores are sig safe, so to speak. It's been a while: https://www.man7.org/linux/man-pages/man3/sem_post.3.html should be sig safe? Or, am I wrong here Kaz?