Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Mirek Prýmek

Stran: 1 ... 19 20 [21] 22 23 ... 618
301
Vývoj / Re:Práce s vlákny v C
« kdy: 26. 01. 2021, 09:25:28 »
Posilat channelem do gorutiny ruzne instance loggeru je neotrela myslenka.
Ježkovanoho, to je příklad. Jde o princip, ne o tuhle konkrétní věc. Nedokumentované struktury jsou všude možně, je to běžný pattern.

Apropos, kdyz tu byla rec o Rustu a porovnani s GO, v Rustu jsou plnotucne thready s celym overheadem okolo, tedy defacto guvod, proc vxniko GO a vsecky node.js async mrdky.
To už pár let není jediné možnost, AFAIK.

302
Vývoj / Re:Práce s vlákny v C
« kdy: 26. 01. 2021, 07:24:21 »
Je to marný, je to marný, je to marný  :-\
Jo, je to marný, když neposloucháš. Jak chceš něco vykopírovávat ze struktury tohodle typu? https://godoc.org/go.uber.org/zap#Logger

303
Vývoj / Re:Práce s vlákny v C
« kdy: 26. 01. 2021, 00:38:53 »
bych si prostě zkopíroval relevantní pole z "neznámého" objektu do pomocného
Což právě ten příspěvek, na kterej reaguješ, konstatuje, že nejde  ::)

To není vypadnutí z věcné koleje, to je totální neschopnost naslouchat argumentům, vyhodnocovat je a reagovat na ně.

304
Vývoj / Re:Práce s vlákny v C
« kdy: 25. 01. 2021, 23:55:57 »
Mimochodem, v tom druhém odkazu je zásadní protiargument proti tomu navrženému řešení s (manuálním) deep copy:

private fields can't be accessed with reflection

Na to jsem si nevzpomněl. Showstopper.

305
Vývoj / Re:Práce s vlákny v C
« kdy: 25. 01. 2021, 23:52:11 »
Skvělý odkaz, merci beaucoup.
Docela pěkný, ale takový základní věci, nic extra, ne?

Jestli si radši čteš než diskutuješ a prověřuješ argumenty, tak třeba líp než to moje plkání přijmeš:

https://medium.com/@sargun/go-concurrency-considered-harmful-26499a422830 (vypichuju odstavec "The worst part about this is that there is no guarantee ...")

https://bluxte.net/musings/2018/04/10/go-good-bad-ugly/#mutability-is-hardcoded-in-the-language
https://bluxte.net/musings/2018/04/10/go-good-bad-ugly/#mutability-and-channels-race-conditions-made-easy

306
Vývoj / Re:Práce s vlákny v C
« kdy: 25. 01. 2021, 20:11:27 »
To bude nejlepší, protože CoW a const v jazyce nijak nesouvisí.
Z toho tvrzeni jsi vypustil to "bezpecna implementace".

307
Vývoj / Re:Práce s vlákny v C
« kdy: 25. 01. 2021, 20:01:09 »
Prosím omezit produkci pochybných tvrzení na jedno za den, jinak se nám tu budou akumulovat.
Kdyz dovolis, omezim celkovy pocet prispevku na nulu, protoze tohle je vazne nedustojny.

308
Vývoj / Re:Práce s vlákny v C
« kdy: 25. 01. 2021, 20:00:22 »
Vymýšlíš nesmysly. To problém není, dokud na ten mutex nesáhneš.
Evidentně se tu všichni shodneme, že když někdo hodně prasí, tak můžou v programech s více vlákny nastat probémy. Nejen v Go. To bych nevyčítal žádnému jazyku, ale samozřejmě, kdo chce psa bít...
Ale to neni muj mutex! To je mutex, ktery si do te struktury dala ta knihovna. Ja vubec nevim, ze tam je, natoz abych na nej chtel sahat. Ja proste NEVIM, chapes?!

309
Vývoj / Re:Práce s vlákny v C
« kdy: 25. 01. 2021, 19:54:47 »
Obávám se, žes něčemu neporozuměl. Jen teď nevím, jestli jde o CoW, nebo něco složitějšího. Fakt v tom hledáš něco, co v tom není (nebo jen schválně prudíš), protože už tu padly dva funkční návrhy, jak to řešit.
Pokud chces bezpecne implementovat CoW, musis mit k dispozici dobre fungujici const. Coz Go nema.

310
Vývoj / Re:Práce s vlákny v C
« kdy: 25. 01. 2021, 19:53:41 »
Kdo by proboha kanálem posílal síťová spojení nebo handle na soubor? Někdo po lobotomii? :)
A když už to pošle, tak to nebude měnit, že...
Ja ti nevim, Idrisi, ty ses prece dost chytrej. To mi vazne nerozumis, o cem mluvim?

Mam nejakou svoji strukturu a v ni mam nejakou strukturu, kterou jsem ziskal z nejake knihovny. A ted NEVIM, jestli ji muzu bezpecne poslat kanalem ze sve goroutiny A do sve goroutiny B. Ne, ja s ni nechci dal pracovat v goroutine A. Je jenom NEVIM, jestli ta struktura nahodou ssebou netahne neco, co by mohlo po tehle operaci zpusobit problem. Uz si rozumime? Problem je v tom ze v Go nevim, co je bezpecne a co neni. A prekladac mi to neumi rict. Uz si rozumime?

Napriklad kdyby ta struktura obsahovala mutex, tak je problem. Takze kazdej, kdo vlozi do nejake struktury mutex, musi byt po lobotomii?!

311
Vývoj / Re:Práce s vlákny v C
« kdy: 25. 01. 2021, 19:41:22 »
[sorry, omylem jsem si misto citace zmenil prispevek. Tenhle mel byt pred tim pred nim]

Mechanismus pointeru a channelu neni slozity na pochopeni.
O tom tady asi neni sporu.

V normalnim programu mi ty pointerovane data budou vznikat lokalne v ramci loop smycky
Tuhle predstavu "normalniho programu" asi uplne nesdilim. Struktury podle me bezne obsahuji kde co, co vzniklo kde jak.

Samozrejme, pokud za "normalni program" budes povazovat jenom nejaky producer-consumer, co si posila inty, tak pak jo :)

Pokud budu chtit v danem pripade zamezit tomuto v GO, staci do channelu posilat pointery na hluboke kopie danych struktur a hned je v main threadu zapominat.
Abych te citoval: "ale kdo to v realu dela" :)

Krom toho, nejsem si uplne jisty, ze to je reseni pro vsechny situace. Musim zapremyslet :)

K tomu bych dodal: CoW. A je po problému.
No ty ses king teda. Takze problem "v Go nejde zarucene bezpecne pouzivat channely" jsi prevedl na problem "v Go nejde zarucene bezpecne implementovat CoW" :)

312
Vývoj / Re:Práce s vlákny v C
« kdy: 25. 01. 2021, 19:35:45 »
Krom toho, nejsem si uplne jisty, ze to je reseni pro vsechny situace. Musim zapremyslet :)
Minimalne samozrejme nefunguje pro ruzny resourcy typu sitovy spojeni, filedescriptor apod., ale to asi neni potreba zduraznovat.

Spis premyslim, jestli by tam nebyly nejaky jiny speky :)

313
Vývoj / Re:Práce s vlákny v C
« kdy: 25. 01. 2021, 19:25:41 »
Tak jest. Taky v tom nevidím nějaký zásadní problém. Ani nejde IMHO o štábní kulturu, stačí používat mozek.
Na druhou stranu, i přes Prýmkovu hysterii jde o hezký podnět k zamyšlení.
Jakou hysterii?! Ja jenom konstatuju, co si myslim a svoje tvrzeni dokladam konkretnim prikladem. Nevylucuju, ze se mylim, ten priklad jde nejak elegantne opravit a tim mou tezi zpochybnit. Ale zatim to jaksi nikdo neudelal. A pritom staci pouzit mozek a napsat par radek kodu misto desitek radek prispevku, ze :)

Tak ale co ti brání? Si to třeba v jednotkových testech zkontroluj, vždyť to není problém.
Brani mi v tom to, ze to neumim udelat tak, aby to bylo spolehlive (jeste porad se bavime o "bezpecnosti", nebo uz ne?)

A to je presne ten duvod, proc chci od tebe priklad. Protoze jenom na ten ti pripadne muzu dat protipriklad. Tvrzeni "staci pouzivat mozek" vyvratit neumim, cili je pro me dost bezcenne...

314
Vývoj / Re:Práce s vlákny v C
« kdy: 25. 01. 2021, 18:45:16 »
Takze staci nebyt uplny dobytek a prace v GO je rozumne bezpecna.
A to prave nestaci. Protoze v te strukture, kterou posilas, muze byt nejaky pointer z te odesilajici goroutiny, a ty o tom vubec nevis (nejaka funkce si tam ulozila neco, cos necekal, ze si tam ulozi).

Jak rika Idris, musel bys kontrolovat cely strom - ne jenom tu horni strukturu, ale i vsechny ji odkazovane struktury.

315
Vývoj / Re:Práce s vlákny v C
« kdy: 25. 01. 2021, 17:27:33 »
Ať už k tomu zdroják máš nebo ne, místo (abych použil tvou terminologii) pindání si to kontroluj za běhu (třeba asercí), pak ti to bude fungovat i s knihovnami nebo pluginy třetích stran a pokud rozumně testuješ, k zákazníkovi se taková chyba nedostane.
Tvl, to je jak kdyz mluvim se svyma deckama: ja jsem chtela... za chvilku... mozna... kdyby... jo, nekdy...

Tak nam to elegantni reseni ukaz, ne? Myslim, ze kdyz ty dva radky kodu uvidime, prozreme daleko spis, nez kdyz budes trousit odkazy na knizky, ktery nemame k dispozici.

Tohle nebylo na tebe.
Ja vim.

Stran: 1 ... 19 20 [21] 22 23 ... 618