🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #217047

Re: Embedded HTTP Server

#217047
From: heby
Date: Tue, 09 Jun 2020 21:32
73 lines
5721 bytes
On 09/06/2020 23:14, Maciej Sobczak wrote:
> Nie emulować, tylko sztucznie te zagadnienia rozdzielasz.
> Przecież biblioteka oparta w całości o callbacki jest eventowa niemal z założenia. To Ty usiłujesz jej przypisać jakieś inne cechy.

Ale "eventowa z wątkami" to nie to samo co "coroutines/cooperative". 
Więc jeśli będziesz się upierał o to że callback z wątku to "event" to 
mamy rózne pojęcie co to jest event-based i oba do obrony.

>>> Muteks jest potrzebny, jeśli masz powody, żeby robić sekcje krytyczne. Tylko od Ciebie zależy, czy będziesz miał te powody.
>> Nie. Jeśli mam event-based to nie mam powodów aby z powodu bibloteki
>> robić coś ekstra.
> Ciągle nie pokazałeś, dlaczego miałbyś robić coś ekstra.
> I dlaczego to akurat miałoby być z powodu tej biblioteki.

Bibliteka czyta/zapisuje zmienną globalną w implementacji callbacka.

Muszę ją obarierować i używać tej bariery w kodzie który nie ma NIC 
wspólnego z serwerem HTTP. W ten sposób wątki z jakiejś bibliteki 
agresywnie wymuszają na mnie zmiany kodu w miejscach odległych.

> Powtórzę: przykłady 1-5 *nie mają* muteksów. A jakie piękne GUI mają.

Helloworldy zazwyczaj nie mają żadnych problemów, chyba głównie dlatego 
że połowa biblitek na necie nie ma innych zastosowań niż własne helloworldy.

Innymi słowy trudno o to aby kilka przykładów było dowodem w innym 
zastosowaniu.

>>>> Mały muteksiak to duży kłopot w kilku przypadkach.
>>> Ale zapomniałeś je opisać.
>> Na przykład tam gdzie masz do czynienia z RT.
> No i? Jest cała szkoła modelowania systemów RT z obiektami chronionymi (patrz np. Ada i związane z nią papiery akademickie), gdzie muteksy w niczym nie przeszkadzają. Jaki masz problem z tymi muteksami?

Zajmują czas, wymagają grubego schedulera preemptive ze skomplikowaną 
logią "Wait". Co prawda taki scheduler jest w zasięgu przeciętnego 
programisty, ale to już nie jest za darmo.

>> Powiedzmy... piszesz soft do drukarki 3D sterujący wprost mechaniką.
> Łał. Myślałem, że drukarki 3D to był szpan dwa lata temu. :-p
> Teraz młodzież steruje dronami.

Nie, ten przykład to takie RT w domu, czyli w sam raz target Twojej 
bibliteki. Hobbystyczny soft z hobbystycznymi biblitekami.

>> Wystawiasz w nim serwer www do sterowania.
> Masz na myśli, że serwer www lata na RaspberryPi

Obecnie sterowniki mają zaszyte jakeiś ARMy po 100MHz. Mimo że to RT to 
w zasadzie procesor ma sporo wolnego w tzw "międzyczasie". Dlaczego nie 
miałby generować jakiegoś www?

> Czy może masz na myśli to, że jakiś masochista uparł się, że serwer www z niesterowalnym stosem TCP musi koniecznie być na jedynym mikrokontrolerze?

Trudno to nazwać masochizmem że ktoś stara się wykorzystać CPU bez 
dodatkowego point-of-failure jakim jest extra Pi robiące za serwer www.

>> Mutexy są mało sensowne
> Ale dalej nie pokazałeś, po co te muteksy. Masz jakieś fiksacje. :-)

Masz wątki to i masz mutexy. W zasadzie czasem tylko memory barrier z 
tych mutextów, ale mimo to dalej masz *coś*. Gdyby było to tylko w 
adapterze do tej bibliteki to spoko. Ale wątki złośliwie zarażają resztę 
kodu pojęciem zasobu krytycznego.

>> Prawie kazdy widział wątek. Promil wie jak działa pod maską.
> [...]
>> Fakt, w http cięzko takie zagadnienia znaleźć ...
> O, to, to. Fajnie, że dostrzegasz bezcelowość swojego trollowania. :-)

Trudno powiedzieć czy to trolowanie. W zasadzie nie wiem. Może to 
dlatego że niedawno trafiłem na równie bezuzyteczny kawałek kodu. Niby 
mógłbym użyć, ale ... detale ... jak ten while (1){} w stackless TCLu. 
Prawie dobrze tylko całkiem do dupy. Taka karma :/
Technical Details
Message-ID: <rbov5h$ol4$1@dont-email.me>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!feeder.usenetexpress.com!tr2.eu1.usenetexpress.com!feeder5.feed.usenet.farm!feed.usenet.farm!eternal-september.org!feeder.eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
References: <d423a072-9378-441b-ba06-e0657a1fa53bo@googlegroups.com> <rbg2hb$ebs$1@dont-email.me> <42ba89cb-8f2f-40a0-ac17-293f71f43f6fo@googlegroups.com> <rbgtv9$vuf$1@dont-email.me> <6a69d306-af0e-499c-bbdb-e74ae6d72a35o@googlegroups.com> <rbh5pi$gkn$1@dont-email.me> <8aa7b6ae-aa79-4a58-9717-e7c293363341o@googlegroups.com> <rbjlo6$dum$1@dont-email.me> <4e191a5e-e565-4e29-8dd5-bd6e5163061bo@googlegroups.com> <rbl1p9$sak$1@dont-email.me> <a939a6b9-a812-4011-81b1-82365df10111o@googlegroups.com> <rbmaac$cps$1@dont-email.me> <8ad576d7-4dd3-4cd7-ba53-2b3061289238o@googlegroups.com> <rbmcsp$utp$1@dont-email.me> <e088a6fa-05fa-46be-af00-07ea9023ab8bo@googlegroups.com> <rbosgc$7q4$1@dont-email.me> <05b9414f-00e5-4ed3-856a-366803697654o@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!feeder.usenetexpress.com!tr2.eu1.usenetexpress.com!feeder5.feed.usenet.farm!feed.usenet.farm!eternal-september.org!feeder.eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: heby <heby@poczta.onet.pl>
Newsgroups: pl.comp.programming
Subject: Re: Embedded HTTP Server
Date: Tue, 9 Jun 2020 23:32:25 +0200
Organization: A noiseless patient Spider
Lines: 73
Message-ID: <rbov5h$ol4$1@dont-email.me>
References: <d423a072-9378-441b-ba06-e0657a1fa53bo@googlegroups.com> <rbg2hb$ebs$1@dont-email.me> <42ba89cb-8f2f-40a0-ac17-293f71f43f6fo@googlegroups.com> <rbgtv9$vuf$1@dont-email.me> <6a69d306-af0e-499c-bbdb-e74ae6d72a35o@googlegroups.com> <rbh5pi$gkn$1@dont-email.me> <8aa7b6ae-aa79-4a58-9717-e7c293363341o@googlegroups.com> <rbjlo6$dum$1@dont-email.me> <4e191a5e-e565-4e29-8dd5-bd6e5163061bo@googlegroups.com> <rbl1p9$sak$1@dont-email.me> <a939a6b9-a812-4011-81b1-82365df10111o@googlegroups.com> <rbmaac$cps$1@dont-email.me> <8ad576d7-4dd3-4cd7-ba53-2b3061289238o@googlegroups.com> <rbmcsp$utp$1@dont-email.me> <e088a6fa-05fa-46be-af00-07ea9023ab8bo@googlegroups.com> <rbosgc$7q4$1@dont-email.me> <05b9414f-00e5-4ed3-856a-366803697654o@googlegroups.com>
Mime-Version: 1.0
Injection-Date: Tue, 9 Jun 2020 21:32:35 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="4c153b40bcfdd4da9ebc0d5378bd9412"; logging-data="25252"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/13EYLdlA2LkzunSHMJov2"
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.8.1
Cancel-Lock: sha1:wnqUAJr3qXpTwwk4fj6Xt8TgwYQ=
In-Reply-To: <05b9414f-00e5-4ed3-856a-366803697654o@googlegroups.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit