public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "redi at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug libstdc++/62313] Data race in debug iterators
Date: Mon, 01 Sep 2014 09:44:00 -0000	[thread overview]
Message-ID: <bug-62313-4-oGWf5yoUWv@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-62313-4@http.gcc.gnu.org/bugzilla/>

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62313

--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> ---
(In reply to François Dumont from comment #4)
> For me there is no bug. Standard containers are known to not be thread safe.

No, containers are known to be thread-safe, when used correctly.

> I don't know what  Standard points are talking about it but what I consider
> as valid was iterating through the container from different threads. However
> in your case you are doing some iterator operations, no matter how simple
> they are,  in one thread while modifying the container from another and this
> require you to put some mutex in place to do so.

No it doesn't.

Only the main thread accesses the container. The other thread simply reads and
writes global iterator objects, which are distinct memory locations from the
container and so can be accessed concurrently. See 17.6.5.9
[res.on.data.races]: "-7- Implementations may share their own internal objects
between threads if the objects are not visible to users and are protected
against data races."

> I think you will experiment the same issue with all versions of the Standard
> lib, even the oldest ones. Synchronization of the list of iterators has
> never been plan to cover this kind of usage which is considered as invalid.

No, this is a bug.
>From gcc-bugs-return-460283-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Mon Sep 01 09:57:56 2014
Return-Path: <gcc-bugs-return-460283-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org>
Delivered-To: listarch-gcc-bugs@gcc.gnu.org
Received: (qmail 3996 invoked by alias); 1 Sep 2014 09:57:56 -0000
Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm
Precedence: bulk
List-Id: <gcc-bugs.gcc.gnu.org>
List-Archive: <http://gcc.gnu.org/ml/gcc-bugs/>
List-Post: <mailto:gcc-bugs@gcc.gnu.org>
List-Help: <mailto:gcc-bugs-help@gcc.gnu.org>
Sender: gcc-bugs-owner@gcc.gnu.org
Delivered-To: mailing list gcc-bugs@gcc.gnu.org
Received: (qmail 3956 invoked by uid 48); 1 Sep 2014 09:57:53 -0000
From: "jakub at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug fortran/62174] Component declarations overwrite types of Cray Pointee variables
Date: Mon, 01 Sep 2014 09:57:00 -0000
X-Bugzilla-Reason: CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: gcc
X-Bugzilla-Component: fortran
X-Bugzilla-Version: 4.8.3
X-Bugzilla-Keywords:
X-Bugzilla-Severity: normal
X-Bugzilla-Who: jakub at gcc dot gnu.org
X-Bugzilla-Status: UNCONFIRMED
X-Bugzilla-Priority: P3
X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org
X-Bugzilla-Target-Milestone: ---
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields: cc
Message-ID: <bug-62174-4-PzTxTqWSLU@http.gcc.gnu.org/bugzilla/>
In-Reply-To: <bug-62174-4@http.gcc.gnu.org/bugzilla/>
References: <bug-62174-4@http.gcc.gnu.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: 7bit
X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-SW-Source: 2014-09/txt/msg00117.txt.bz2
Content-length: 734

https://gcc.gnu.org/bugzilla/show_bug.cgi?idb174

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Patches should go to the gcc-patches at gcc.gnu.org mailing list (and in case
of Fortran FE patches also CC fortran at gcc.gnu.org ml).  That is where patch
review happens.  For a one-liner change like this, I think you don't need
Copyright assignment, but if you plan to submit further patches, please
consider following https://gcc.gnu.org/contribute.html


  parent reply	other threads:[~2014-09-01  9:44 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-08-30 16:07 [Bug libstdc++/62313] New: " dvyukov at google dot com
2014-08-30 16:12 ` [Bug libstdc++/62313] " pinskia at gcc dot gnu.org
2014-08-30 16:23 ` dvyukov at google dot com
2014-08-31 19:07 ` redi at gcc dot gnu.org
2014-08-31 20:56 ` fdumont at gcc dot gnu.org
2014-09-01  9:44 ` redi at gcc dot gnu.org [this message]
2014-09-01 10:12 ` dvyukov at google dot com
2014-09-01 22:36 ` redi at gcc dot gnu.org
2014-09-02  3:30 ` dvyukov at google dot com
2014-09-23 20:47 ` fdumont at gcc dot gnu.org
2014-09-24  0:43 ` dvyukov at google dot com
2014-09-29 21:22 ` fdumont at gcc dot gnu.org

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=bug-62313-4-oGWf5yoUWv@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@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).