🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #267908

Re: Ciemna strona C++

#267908
From: Piotr Wyderski
Date: Fri, 23 Nov 2007 21:52
65 lines
3547 bytes
Seweryn Habdank-Wojewódzki wrote:

>> w szczególności treść funkcji compare_and_swap.
>
> Ale u mnie np. operator= na następującą treść:
>
>    shared_ptr & operator=(shared_ptr const & r)
>    {
>        px = r.px;
>        pn = r.pn;
>        return *this;
>    }
>
> Nie widzę żadnej synchronizacji.

No ja się nie dziwię, że _nie widzisz_, bo jest ona ukryta w przeciążonym
operatorze =() środkowej instrukcji, operującej na klasie 
detail::shared_count:

    shared_count & operator= (shared_count const & r) // nothrow
    {
        sp_counted_base * tmp = r.pi_;

        if( tmp != pi_ )
        {
            if( tmp != 0 ) tmp->add_ref_copy();
            if( pi_ != 0 ) pi_->release();
            pi_ = tmp;
        }

        return *this;
    }

Zdradliwy języczek, co? :-)))

> Hmm... no to spełnia się moja teoria użyteczności Flame.

:-)

Mnie też się ona podoba. Wspominałeś coś ostatnio o teoretycznych
podstawach dobierania optymalnego predyktora do rozkładu danych,
chetnie bym się z tym bliżej zapoznał.

> A jak to jest w J, Py i reszcie bezpiecznego świata.

Aż tak szczegółowo nie znam tych platform.

> To jaki jest cel tego kodu.

Właśnie wielowątkowo bezpieczne zliczanie referencji. Ale
dokładnie TYLKO tyle. Na spójność zawartości dzielonych
w ten sposób obiektów żadnych gwarancji nie daje, bo i nie
może. Stąd poza szczególnym przypadkami, polegającymi
na ręcznym zapewnianiu spójności pamięci (czy to jawne
bariery, czy efekty uboczne tricków wyłączania forwardingu
itp. sztuczkek) boost::shared_ptr powinien być stosowany
tylko do obiektów const.

    Pozdrawiam
    Piotr Wyderski

PS. widzę, że poruszyliście sprawę włókien -- świetnie,
to bardzo ciekawy temat, ale zbliżone do moich wnioski
już zostały wyciągnięte, więc chwilowo nie mam nic do
dodania.
Technical Details
Message-ID: <fi7i2i$lkr$1@news.dialog.net.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail
References: <fghgeo$spf$1@nemesis.news.tpi.pl> <fghsb4$kpq$1@news.dialog.net.pl> <fgo4c7$mtu$1@news.vectranet.pl> <20071106073039.433f4934@Vorago> <fgqn9m$74j$2@news.vectranet.pl> <618565031.20071107113041@pkierski.net> <fgt6sh$jov$1@news.vectranet.pl> <fgtb6j$nur$1@news.vectranet.pl> <fgv6ba$k14$1@bozon2.softax.pl> <fgvkne$u3b$1@news.vectranet.pl> <fh1tjd$dtt$1@bozon2.softax.pl> <fh2lj6$qkh$1@news.vectranet.pl> <fha3as$pap$1@bozon2.softax.pl> <fhaj8u$e02$1@news.vectranet.pl> <fhf09d$ohq$1@bozon2.softax.pl> <fhfi9l$640$1@news.vectranet.pl> <fhurmu$5d9$1@bozon2.softax.pl> <fhv020$8k1$1@news.vectranet.pl> <fi2nbp$bit$1@nemesis.news.tpi.pl> <fi3e50$h2u$1@news.vectranet.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.dialog.net.pl!not-for-mail
From: "Piotr Wyderski" <wyderski@mothers.against.spam-ii.uni.wroc.pl>
Newsgroups: pl.comp.lang.c
Subject: Re: Ciemna strona C++
Date: Fri, 23 Nov 2007 22:52:25 +0100
Organization: Dialog Net
Lines: 66
Message-ID: <fi7i2i$lkr$1@news.dialog.net.pl>
References: <fghgeo$spf$1@nemesis.news.tpi.pl> <fghsb4$kpq$1@news.dialog.net.pl> <fgo4c7$mtu$1@news.vectranet.pl> <20071106073039.433f4934@Vorago> <fgqn9m$74j$2@news.vectranet.pl> <618565031.20071107113041@pkierski.net> <fgt6sh$jov$1@news.vectranet.pl> <fgtb6j$nur$1@news.vectranet.pl> <fgv6ba$k14$1@bozon2.softax.pl> <fgvkne$u3b$1@news.vectranet.pl> <fh1tjd$dtt$1@bozon2.softax.pl> <fh2lj6$qkh$1@news.vectranet.pl> <fha3as$pap$1@bozon2.softax.pl> <fhaj8u$e02$1@news.vectranet.pl> <fhf09d$ohq$1@bozon2.softax.pl> <fhfi9l$640$1@news.vectranet.pl> <fhurmu$5d9$1@bozon2.softax.pl> <fhv020$8k1$1@news.vectranet.pl> <fi2nbp$bit$1@nemesis.news.tpi.pl> <fi3e50$h2u$1@news.vectranet.pl>
NNTP-Posting-Host: xdsl-6381.walbrzych.dialog.net.pl
Mime-Version: 1.0
X-Trace: news.dialog.net.pl 1195854739 22171 87.105.52.237 (23 Nov 2007 21:52:19 GMT)
X-Complaints-To: abuse@dialog.net.pl
NNTP-Posting-Date: Fri, 23 Nov 2007 21:52:19 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
X-Antivirus: avast! (VPS 071123-0, 2007-11-23), Outbound message
X-Antivirus-Status: Clean
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit