🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Ciemna strona C++

#267854
From: Sebastian Kaliszewski
Date: Tue, 11 Dec 2007 15:38
38 lines
3785 bytes
Sektor van Skijlen wrote:
> Oczywiście, że wiem. W przypadku mojej aplikacji jednak nie ma to akurat
> żadnego znaczenia - każda dana volatile ma swoje niezależne znaczenie i fakt,
> że jedna została dosynchronizowana, a druga nie, nie ma żadnego znaczenia. Że
> mi się pojawi aktualna wartość grubo po tym - mnie to wali. To zmienia tylko i
> wyłącznie relatywistyczne zależności czasowe między wątkami (wydaje się, że
> wuykonywały się w innych strefach czasowych, niż miało to faktycznie miejsce).
> 

To jak powiedział Maciek, to jest detal twojej aplikacji a nie ogólna 
tożsamość volatile z Javy i z C/C++.

[...]
>>Ponieważ w GCC volatile nie ma memory barrier to jeden procesor może widzieć 
>>zapisy w innej kolejności niż się faktycznie wydarzyły.
> 
> Super. A co MA memory barrier?

Choćby volatile z Javy :) A także volatile z MSVC 8.0

Przy czym typów barier jest wiele (zwykle uznaje się że 15 lub 16 lub nawet 
30). Bariera może blokować przenoszenie dostępów do pamięci ponad nią wstecz 
(czyli operacje "na zapas") i do przodu (czyli operacje "odkładane na 
później") i może dotyczyć operacji odczytu albo zapisu i te blokowania można 
ze sobą kombinować -- razem 15 typów barier. 16 typ (lub kolejne 15 typów) 
to bariera(y) kompilatora która dotyczy tylko reorganizacji dostępów do 
pamięci przez kompilator bez dotykania spraw procesora.

W GCC tą osytatnią to się robi przez volatile asm("", "", "");
Inne są machine specific i większość procesorów ma tylko niektóre kombinacje 
(co nie przeszkadza, bo zawsze można użyć silniejszej w miejscu słabszej) -- 
zwykle jest albo full barrier albo acquire (pełna blokada wsteczna), release 
(pełna blokada do przodu) barriers albo jedno i drugie. Każde zajęcie mutexa 
czy podobnego obiektu synchronizacyjnego zawiera conajmniej acquire a 
zwolnienie -- conajmniej release.

pzdr
\SK
Technical Details
Message-ID: <fjm9tt$pod$1@bozon2.softax.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!opal.futuro.pl!news.internetia.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!bozon.softax.com.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> <fi1bs4$nn3$1@bozon2.softax.pl> <fi27ds$gt1$1@kujawiak.man.lodz.pl> <fi458p$fmv$1@bozon2.softax.pl> <fi9ckc$2u5$1@kujawiak.man.lodz.pl> <fimb7n$80v$1@bozon2.softax.pl> <fj5k6j$r3e$1@kujawiak.man.lodz.pl> <1196847281.22322.24.camel@qrnik> <fj6in8$mij$2@kujawiak.man.lodz.pl> <fj6m8p$b7e$1@bozon2.softax.pl> <fj96ug$7e4$3@kujawiak.man.lodz.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!opal.futuro.pl!news.internetia.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!bozon.softax.com.pl!not-for-mail
From: Sebastian Kaliszewski <s@get.it.off.to.reply.informa.pl>
Newsgroups: pl.comp.lang.c
Subject: Re: Ciemna strona C++
Date: Tue, 11 Dec 2007 16:38:17 +0100
Organization: Softax news server
Lines: 38
Message-ID: <fjm9tt$pod$1@bozon2.softax.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> <fi1bs4$nn3$1@bozon2.softax.pl> <fi27ds$gt1$1@kujawiak.man.lodz.pl> <fi458p$fmv$1@bozon2.softax.pl> <fi9ckc$2u5$1@kujawiak.man.lodz.pl> <fimb7n$80v$1@bozon2.softax.pl> <fj5k6j$r3e$1@kujawiak.man.lodz.pl> <1196847281.22322.24.camel@qrnik> <fj6in8$mij$2@kujawiak.man.lodz.pl> <fj6m8p$b7e$1@bozon2.softax.pl> <fj96ug$7e4$3@kujawiak.man.lodz.pl>
NNTP-Posting-Host: 83.18.189.42
Mime-Version: 1.0
X-Trace: atlantis.news.tpi.pl 1197386707 8279 83.18.189.42 (11 Dec 2007 15:25:07 GMT)
X-Complaints-To: usenet@tpi.pl
NNTP-Posting-Date: Tue, 11 Dec 2007 15:25:07 +0000 (UTC)
User-Agent: Mozilla Thunderbird 1.0.2 (X11/20050322)
X-Accept-Language: en-us, en
In-Reply-To: <fj96ug$7e4$3@kujawiak.man.lodz.pl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit