eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming[Laik] C przerwanie działania funkcji.Re: [Laik] C przerwanie działania funkcji.
  • Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
    atman.pl!news.chmurka.net!.POSTED!not-for-mail
    From: g...@s...invalid (Adam Wysocki)
    Newsgroups: pl.comp.programming
    Subject: Re: [Laik] C przerwanie działania funkcji.
    Date: Thu, 29 May 2014 12:19:21 +0000 (UTC)
    Organization: news.chmurka.net
    Lines: 28
    Message-ID: <g...@n...chmurka.net>
    References: <5387149d$0$2153$65785112@news.neostrada.pl>
    NNTP-Posting-Host: 127.0.0.1
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2
    Content-Transfer-Encoding: 8bit
    X-Complaints-To: abuse-news.(at).chmurka.net
    NNTP-Posting-Date: Thu, 29 May 2014 12:19:21 +0000 (UTC)
    User-Agent: tin/2.2.0-20131224 ("Lochindaal") (UNIX) (Linux/3.2.0-4-686-pae (i686))
    X-Authenticated-User: gof
    Xref: news-archive.icm.edu.pl pl.comp.programming:205864
    [ ukryj nagłówki ]

    Andrzej W. <a...@w...pl> wrote:

    > W A ustawiam sobie przerwanie od licznika.
    > W B wyłączam to przerwanie.
    > Jeśli program dotrze z A do B zanim przerwanie zostanie wywołane nic się
    > nie dzieje, jest normalnie wykonywany dalej.
    > Jeśli funkcja F się będzie ociągać i przerwanie zostanie wywołane to
    > program ma zacząć wykonywanie w punkcie B a zasoby zawłaszczone przez F
    > powinny zostać zwolnione.

    Czyli chcesz zrobić watchdoga na funkcję F(), tak? Jest w niej jakaś
    pętla, która wykonuje się cyklicznie i możesz w niej sprawdzić stan
    flagi (koniecznie volatile), ustawionej w przerwaniu?

    > Jaki warunki powinna spełniać funkcja F by dało się ją bezboleśnie
    > zabić i posprzątać?

    Nie znam sposobu na czyste "zabicie" funkcji, są sztuczki z setjmp
    i longjmp, ale to brudne sztuczki... jedyne czyste sposoby, jakie
    znam, to samobójstwo funkcji - niech ona sama się skończy i posprząta.

    Chyba że to nie C, a C++, w którym masz wyjątki, a zwalnianiem zasobów
    zajmą się destruktory po wyjściu z zasięgu. Ale C++ to zupełnie inna
    bajka.

    --
    SELECT finger FROM hand WHERE id = 3;
    http://www.chmurka.net/

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: