From cb580d5cac946026d3a8c75c0dbfc1818438f6ba Mon Sep 17 00:00:00 2001 From: "Loren J. Rittle" Date: Sat, 13 Oct 2001 00:06:21 +0000 Subject: [PATCH] index.html (Is libstdc++-v3 thread-safe?): Update based on Nathan's review. * docs/html/faq/index.html (Is libstdc++-v3 thread-safe?): Update based on Nathan's review. Use Nathan's words. From-SVN: r46238 --- libstdc++-v3/ChangeLog | 5 +++++ libstdc++-v3/docs/html/faq/index.html | 26 +++++++++----------------- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index cde49f1..808d1f0 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2001-10-12 Loren J. Rittle + + * docs/html/faq/index.html (Is libstdc++-v3 thread-safe?): Update + based on Nathan's review. Use Nathan's words. + 2001-10-11 Matt Kraai * docs/html/configopts.html: Quote StyleSheet attribute values. diff --git a/libstdc++-v3/docs/html/faq/index.html b/libstdc++-v3/docs/html/faq/index.html index 4d8510a..e0f31ce 100644 --- a/libstdc++-v3/docs/html/faq/index.html +++ b/libstdc++-v3/docs/html/faq/index.html @@ -686,7 +686,9 @@ http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff

5.6 Is libstdc++-v3 thread-safe?

-

When the system's libc is itself thread-safe, libstdc++-v3 +

When the system's libc is itself thread-safe, a non-generic + implementation of atomicity.h exists for the architecture, and + gcc itself reports a thread model other than single; libstdc++-v3 strives to be thread-safe. The user-code must guard against concurrent method calls which may access any particular library object's state. Typically, the application @@ -718,22 +720,12 @@ http://clisp.cons.org/~haible/gccinclude-glibc-2.2-compat.diff object_a.mutate (); } -

However, as of gcc 3.0 and point releases, beware that there - may be cases where shared nested or global objects (neither - of which are visible to user-code) are affected or used - without any internal locking. - -

-

In some cases, a stronger thread-safe claim is made. The - string class is thread-safe without user-code guards (i.e. a - string object may be shared and accessed between threads - without user-level locking). The IO classes are thread-safe - with user-code guards whenever the same user-visible object - may be accessed by multiple threads. The container classes - are thread-safe with user-code guards whenever the same - container may be accessed by multiple threads. All accesses - to hidden shared objects (e.g. the global allocator objects) - are believed to be properly guarded within the library. +

All library objects are safe to use in a multithreaded + program as long as each thread carefully locks out access by + any other thread while it uses any object visible to another + thread. This requirement includes both read and write access + to objects; do not assume that two threads may read a shared + standard container at the same time.

See chapters 17, 23 and -- 2.7.4