🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Ciemna strona C++

#267847
From: Sebastian Kaliszewski
Date: Wed, 05 Dec 2007 17:30
63 lines
3435 bytes
Sektor van Skijlen wrote:
>>>>Rozumiem, że chodzi o volatile z Dżawy, nie to cóś z C/C++.
>>>
>>>Ależ oczywiście, że chodzi o oba. Zresztą znaczenie 'volatile' w Javie i w C++
>>>jest identyczne (jeśli oczywiście uwzględnimy fakt, że gcc ma rozszerzenie w
>>>stosunku do standardu, co pozwala zmiennym oznaczonym volatile pracować
>>>poprawnie z posix threads).
> 
> 
>>Jakie rozszerzenie GCC? Nie słyszałem o nim. Na pewno nie jest tak
>>domyślnie (nawet przy kompilacji z -pthread).
> 
> 
> Ależ oczywiście, że jest tak domyślnie - obiekty oznaczone jako volatile są
> modyfikowane od razu w każdym wątku.

Sektor, czy ty wogóle wiesz o czym ty mówisz??? Mam wrażenie, że nie masz 
bladego pojęcia.

Wiesz co to jest coś takiego, jak memory ordering? Wiesz co to jest memory 
barrier (znane czasem jako memory fence)? Co to jest acquire semantics, co 
to release semantics?


Wiesz, że jak masz dwa procesory to w wielu architekturach poniższy kod może 
wypisać 0? Nawet w GCC.


volatile sig_atomic_t a = 0;
volatile sig_atomic_t b = 0;

void thread_a()
{
   while(true)
   {
     if(a != 0) // tu czytamy a (najpierw)
     {
       int v = int(b); // tu czytamy b (potem)
       std::cout << v; // niespodzianka :)
       return;
     }
   }
}

void thread_b()
{
   sleep(13);
   b = 1; // tu zapisujemy b (najpierw)
   a = 1; // tu zapisujemy a (potem)
}

int main()
{
    launch_thread(&thread_b);
    launch_thread(&thread_a);
}


Ponieważ w GCC volatile nie ma memory barrier to jeden procesor może widzieć 
zapisy w innej kolejności niż się faktycznie wydarzyły.

pzdr
\SK
Technical Details
Message-ID: <fj6m8p$b7e$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>

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: Wed, 05 Dec 2007 18:30:27 +0100
Organization: Softax news server
Lines: 63
Message-ID: <fj6m8p$b7e$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>
NNTP-Posting-Host: 83.18.189.42
Mime-Version: 1.0
X-Trace: atlantis.news.tpi.pl 1196875506 10686 83.18.189.42 (5 Dec 2007 17:25:06 GMT)
X-Complaints-To: usenet@tpi.pl
NNTP-Posting-Date: Wed, 5 Dec 2007 17:25:06 +0000 (UTC)
User-Agent: Mozilla Thunderbird 1.0.2 (X11/20050322)
X-Accept-Language: en-us, en
In-Reply-To: <fj6in8$mij$2@kujawiak.man.lodz.pl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit