Coroutines aneb thready bez threadu
Martin Mares
mj na ucw.cz
Úterý Říjen 6 21:54:40 CEST 1998
> Rekl bych, ze kreativni vyuziti funkce sigaltstack() by mohlo pomoci.
To by mozna slo...
> Nemusi? A kde si korutina uchovava svuj vlastni stav? Spis je rozdil
> v tom, jak je vhodne zasobnik implementovat.
Klasicke korutiny na lokalni promenne vubec zasobnik nepouzivaji --
veskery lokalni prostor je alokovan z haldy.
> Hm? longjmp() samotny nic nenici, problem je v tom, ze takovy stav muze
> ukazovat na oblast zasobniku, ktera byla (nebo v blizke dobe bude)
> prepsana necim jinym
Presne tak ... a to neni rozumne mozna portabilne zaridit :-|
> A co navratove adresy?
Jestlize prohlasim naalokovane misto za novy zasobnik, neni v nich
zadny problem.
> Krome toho uplne zruseni zasobniku jako takoveho zpusobi nepouzitelnost vsech
> knihoven
To bohuzel ano, stejne jako spousta jinych uzitecnych veci (-mregparm ci
-ffixed-XX budtez klasickym prikladem).
> a take to bude nejspis o poznani pomalejsi.
Ne tak moc -- nepromyslel jsem si to do detailu, ale odhaduji, ze cca
10 instrukci na call/return v beznem pripade by melo plne stacit.
Have a nice fortnight
--
Martin `MJ' Mares <mj na ucw.cz> http://atrey.karlin.mff.cuni.cz/~mj/
Faculty of Math and Physics, Charles University, Prague, Czech Rep., Earth
"Quote of the day: '"
Další informace o konferenci Linux