Portál AbcLinuxu, 19. listopadu 2025 14:09
auto?
auto označuje automatický typ, ne automatickou dedukci kompilátoru za pomoci binární křišťálové koule, jestli něco má být volatile nebo ne.
nonvolatile by se muselo předepisovat i u všech prototypů funkcí a definicí struktur.
--std=little.owl bylo asi dost nekompatibilní s jakýmkoli jiným C, takže asi ne :)
ono by hypotetické --std=little.owl bylo asi dost nekompatibilní s jakýmkoli jiným CJa se rad pobavim na svuj ucet, ale tady mi nejak nedochazi. Proc
--std=little.owl ?
A jiné jméno, než --std=little.owl mě prostě nenapadlo. Nic ve zlém.
volatile) Měl by taky za každou operací, která modifikuje paměť, provést memory barrier, aby se změna skutečně projevila na všech jádrech, protože jinak na to bude potřeba nějaká „další prasárna“? Tipuji, že jste nikdy nic takhle nízkoúrovňově nedělal, proto nemáte tušení, jak pomalá by taková aplikace byla.
). Memory barrier je třeba až když se přistupuje k MMIO, ale jen pokud procesor neumí vypnou cachování jinak, např. u x86 jsou na to MTRR a u x86_64 atributy stránek.
Normální SMTP procesorySMP nebo link! :-O
.
. Např. tady.
Jo a buď by měly být všechny takový proměnný, kde může zapisovat 2 a více vláken, definovaný jako volatileAni volatile vam moc nepomuze,to je jen hint pro kompilator aby to nezoptimalizoval, volatile nevklada memory barrier.
[/rejp]
…Concurrency není věcí vestavěnou přímo do jazyka C…od dubna 2011 a C verze C11 to už umí. Je otázka jak to umějí kompilátory a jak se s tím popasují při kompilaci kernelu.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.