Article View: pl.comp.lang.c
Article #267906Re: Ciemna strona C++
From: Piotr Wyderski
Date: Thu, 22 Nov 2007 01:46
Date: Thu, 22 Nov 2007 01:46
49 lines
3569 bytes
3569 bytes
Seweryn Habdank-Wojewódzki wrote:
> Nie wiedzę o czym mówisz. W kodzie shared_ptr z boosta nie
> widzę żadnej synchronizacji, więc nie wiem o czym mówisz.
http://svn.boost.org/trac/boost/browser/trunk/boost/boost/detail/sp_counted_base_gcc_sparc.hpp?rev=34480
w szczególności treść funkcji compare_and_swap.
Ale problem jest znacznie poważniejszy: synchronizacja
odnosi się tylko do licznika, zmiany zawartości wskazywanego
przez obiektu nie są w żaden sposób synchronizowane
między procesorami. I teraz mi powiedz, ile programów
zawiera takie błędy. Na intelu będą działały bezawaryjnie,
na czymkolwiek innym (Sparc w trybie PSO i słabszym,
PowerPC, Itanium, Alpha) już nie i to w sposób skrajnie
niedeterministyczny.
To nie jest jednak problem boosta ani C++, bo model
spójności pamięci określa hardware. C++ nie rozwiązuje
go o tyle, że nie udostępnia jawnych barier (wystarczyłyby
semantyki acquire i release), a mógłby. _Niestety_ są
prowadzone prace nad opracowaniem modelu pamięci
w C++, który według mnie będzie dziełem napisanym
do szuflady, bo nie na poziomie języka leży problem.
Winą boosta jest tylko to, że daje użytkownikom złudzenie
bezpiecznego, wielowątkowego zliczania referencji i jeśli
ktoś nie słyszał o problematyce spójności, to biorąc to
narzędzie w dobrej wierze może się pokaleczyć. A sprawa
jest bardzo delikatna.
> A w ogóle pokaż mi te synchronizacje w kodzie boost::shared_ptr.
Sebastian dobrze Ci mówi, one tam _są_. A że nie wygląda jak muteks..?
> Np. systemy rozproszone najlepiej programują/projektują Ci co poczuli
> gorzki
> smak C, C++ i innych języków brzydkich.
Coś w tym jest. Ale z drugiej strony zobacz sobie,
jak dziadki implementowały tablice w Algolu 68C:
http://birrell.org/andrew/papers/A68StorageManagement-Sigplan.pdf
i jak prymitywna przy tym jest oferta C++.
Pozdrawiam
Piotr Wyderski
Technical Details
Message-ID:
<fi2nbp$bit$1@nemesis.news.tpi.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mailReferences:
<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>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail From: "Piotr Wyderski" <piotr.wyderski@wp.pl> Newsgroups: pl.comp.lang.c Subject: Re: Ciemna strona C++ Date: Thu, 22 Nov 2007 02:46:21 +0100 Organization: tp.internet - http://www.tpi.pl/ Lines: 50 Message-ID: <fi2nbp$bit$1@nemesis.news.tpi.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> NNTP-Posting-Host: fdc146.internetdsl.tpnet.pl Mime-Version: 1.0 X-Trace: nemesis.news.tpi.pl 1195696313 11869 83.13.80.146 (22 Nov 2007 01:51:53 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: Thu, 22 Nov 2007 01:51:53 +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 071121-0, 2007-11-21), Outbound message X-Antivirus-Status: Clean Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit