public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
From: i.nixman@autistici.org
To: Jonathan Wakely <jwakely@redhat.com>
Cc: LIU Hao <lh_mouse@126.com>,
	libstdc++@gcc.gnu.org, gcc-patches@gcc.gnu.org,
	Eric Botcazou <ebotcazou@adacore.com>
Subject: Re: Adding a new thread model to GCC
Date: Fri, 21 Oct 2022 10:09:55 +0000	[thread overview]
Message-ID: <7277b1d9a835d8cc651ab112eac8c2e7@autistici.org> (raw)
In-Reply-To: <CACb0b4=4K5b046-hTCgMa9NE8h9Kqp3j8JwTBwww4D=PWQZmHQ@mail.gmail.com>

On 2022-10-21 09:58, Jonathan Wakely via Libstdc++ wrote:
> How does this compare with Eric B's proposal at
> https://gcc.gnu.org/legacy-ml/gcc-patches/2019-06/msg01840.html ?
> 
> It would be good if we can accept one of them for GCC 13, but I don't
> know Windows well enough to determine which is better.

I had the same question...
I would like to understand what is the difference?
Moreover I would like to understand what is the difference with the 
already added support for the winpthreads library?

@LIU Hao, could you explain please?



best!


> On Sat, 1 Oct 2022 at 19:35, LIU Hao via Libstdc++
> <libstdc++@gcc.gnu.org> wrote:
>> 
>> Greetings.
>> 
>> After some years I think it's time to put on this topic again.
>> 
>> This patch series is an attempt to add a new thread model basing on 
>> the mcfgthread library
>> (https://github.com/lhmouse/mcfgthread), which provides efficient 
>> implementations of mutexes,
>> condition variables, once flags, etc. for native Windows.
>> 
>> 
>> The first patch is necessary because somewhere in libgfortran, 
>> `pthread_t` is referenced. If the
>> thread model is not `posix`, it fails to compile.
>> 
>> The second patch implements `std::thread::hardware_concurrency()` for 
>> non-posix thread models. This
>> would also work for the win32 thread model if `std::thread` would be 
>> supported in the future.
>> 
>> The third patch adds the `mcf` thread model for GCC and its libraries. 
>> A new builtin macro
>> `__USING_MCFGTHREAD__` is added to indicate whether this new thread 
>> model is in effect. This grants
>> `std::mutex` and `std::once_flag` trivial destructors; 
>> `std::condition_variable` is a bit
>> unfortunate because its destructor is non-trivial, but in reality no 
>> cleanup is performed.
>> 
>> 
>> I have been bootstrapping GCC with the MCF thread model for more than 
>> five years. At the moment, C,
>> C++ and Fortran are supported. Ada is untested because I don't know 
>> how to bootstrap it. Objective-C
>> is not supported, because threading APIs for libobjc have not been 
>> implemented.
>> 
>> Please review. If there are any changes that I have to make, let me 
>> know.
>> 
>> 
>> --
>> Best regards,
>> LIU Hao

  reply	other threads:[~2022-10-21 10:09 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-10-01 18:34 LIU Hao
2022-10-01 20:02 ` Bernhard Reutner-Fischer
2022-10-02 12:54   ` LIU Hao
2022-10-03  5:03     ` Bernhard Reutner-Fischer
2022-10-04  8:06       ` LIU Hao
2022-10-04 19:45         ` Bernhard Reutner-Fischer
2022-10-04 12:44       ` LIU Hao
2022-10-04 13:13         ` Xi Ruoyao
2022-10-04 13:45           ` LIU Hao
2022-10-05  1:23             ` Xi Ruoyao
2022-10-10 15:56         ` LIU Hao
2022-10-11 13:22           ` LIU Hao
2022-10-14  9:39             ` Jonathan Yong
2022-10-19 13:55               ` Jonathan Yong
2022-10-19 19:53                 ` Bernhard Reutner-Fischer
2022-10-20  1:25                   ` LIU Hao
2022-10-21  9:58 ` Jonathan Wakely
2022-10-21 10:09   ` i.nixman [this message]
2022-10-21 10:48     ` Jonathan Wakely
2022-10-21 10:55       ` i.nixman
2022-10-21 11:36     ` LIU Hao
2022-10-21 11:54       ` i.nixman
2022-10-21 12:19         ` LIU Hao
2022-10-21 12:34           ` i.nixman
2022-10-24  3:40             ` LIU Hao
2022-10-24 20:50               ` Jacek Caban
2022-10-21 12:13       ` Jacek Caban
2022-10-21 12:29         ` LIU Hao
2022-10-21 12:40           ` Jacek Caban
2022-10-21 11:44   ` Eric Botcazou
2022-10-21 11:55     ` i.nixman
2022-10-21 12:30       ` Jacek Caban
2022-10-23  0:36         ` NightStrike
2022-10-24  6:53     ` i.nixman
2022-10-24  8:15       ` Eric Botcazou
2022-10-24  8:20         ` i.nixman
2022-10-31  9:18       ` Eric Botcazou
2022-10-31 15:22         ` i.nixman
2022-12-18 11:14           ` Jonathan Yong
2022-11-01  5:22         ` i.nixman
2022-11-01  9:09           ` Eric Botcazou
2022-11-02 12:05             ` i.nixman
2022-11-02 21:27               ` Eric Botcazou
2022-11-02 21:40                 ` i.nixman
2022-12-16 17:18         ` Jonathan Wakely
2022-12-16 19:20           ` Eric Botcazou
2022-12-22 12:21             ` Jonathan Yong
2022-12-22 12:28               ` i.nixman
2022-12-23 23:59                 ` Jonathan Yong
2022-12-24  5:58                   ` NightStrike
2022-12-24  6:27                     ` i.nixman
2022-12-24 13:50                     ` i.nixman
2022-12-24 15:42                       ` i.nixman
2022-12-24 15:57                         ` i.nixman
2022-12-24 21:22                           ` i.nixman
2022-12-25  1:10                             ` Jonathan Yong
2023-01-09 21:56                             ` Eric Botcazou
2022-12-24  6:22                   ` i.nixman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7277b1d9a835d8cc651ab112eac8c2e7@autistici.org \
    --to=i.nixman@autistici.org \
    --cc=ebotcazou@adacore.com \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=jwakely@redhat.com \
    --cc=lh_mouse@126.com \
    --cc=libstdc++@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).