git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jeff King <peff@peff.net>
To: Ben Peart <peartben@gmail.com>
Cc: 'git' <git@vger.kernel.org>,
	"Jeff Hostetler (jeffhost@microsoft.com)" 
	<Jeff.Hostetler@microsoft.com>,
	Ben Peart <benpeart@microsoft.com>
Subject: Re: Safe to use stdatomic.h?
Date: Mon, 20 Mar 2017 16:27:55 -0400	[thread overview]
Message-ID: <20170320202755.ospj7o6dfczti6wp@sigill.intra.peff.net> (raw)
In-Reply-To: <000801d2a1b7$1ec41620$5c4c4260$@gmail.com>

On Mon, Mar 20, 2017 at 04:18:20PM -0400, Ben Peart wrote:

> My college Jeff is working on a patch series to further parallelize the
> loading of the index.  As part of that patch, it would be nice to use the
> atomic_fetch_add function as that would be more efficient than creating a
> mutex simply to protect a variable so that it can be incremented.  I haven't
> seen any use of atomics yet in Git, nor anything that includes
> <stdatomic.h>.
> 
> GCC has supported them since 4.9 and Clang has supported them by default
> since 3.3.  Are there any compilers currently in use by Git that don't
> support these C11 functions?

Yes, there definitely are older compilers in use. However, if you can
abstract the operation you want to perform into its own function, it's
perfectly fine to #ifdef it to use the atomics when available and fall
back to a mutex otherwise.

-Peff

  reply	other threads:[~2017-03-20 20:29 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-20 20:18 Safe to use stdatomic.h? Ben Peart
2017-03-20 20:27 ` Jeff King [this message]
2017-03-20 23:22 ` brian m. carlson
2017-03-21  1:59   ` Eric Wong

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

  List information: http://vger.kernel.org/majordomo-info.html

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

  git send-email \
    --in-reply-to=20170320202755.ospj7o6dfczti6wp@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=Jeff.Hostetler@microsoft.com \
    --cc=benpeart@microsoft.com \
    --cc=git@vger.kernel.org \
    --cc=peartben@gmail.com \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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).