eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingEmbedded HTTP Server › Re: Embedded HTTP Server
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erj
    e.net!feeder.erje.net!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!feeder.usenet
    express.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 <h...@p...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: <d...@g...com>
    <rbg2hb$ebs$1@dont-email.me>
    <4...@g...com>
    <rbgtv9$vuf$1@dont-email.me>
    <6...@g...com>
    <rbh5pi$gkn$1@dont-email.me>
    <8...@g...com>
    <rbjlo6$dum$1@dont-email.me>
    <4...@g...com>
    <rbl1p9$sak$1@dont-email.me>
    <a...@g...com>
    <rbmaac$cps$1@dont-email.me>
    <8...@g...com>
    <rbmcsp$utp$1@dont-email.me>
    <e...@g...com>
    <rbosgc$7q4$1@dont-email.me>
    <0...@g...com>
    Mime-Version: 1.0
    Content-Type: text/plain; charset=utf-8; format=flowed
    Content-Transfer-Encoding: 8bit
    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="a...@e...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: <0...@g...com>
    Content-Language: en-US
    Xref: news-archive.icm.edu.pl pl.comp.programming:214980
    [ ukryj nagłówki ]

    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 :/

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: