🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.os.linux.programowanie
Article #72495

Re: setjmp/longjmp

#72495
From: Kicer
Date: Fri, 25 May 2012 05:11
37 lines
1649 bytes
Michoo wrote:

> On 20.05.2012 15:04, Borneq wrote:
>> http://www.mkssoftware.com/docs/man3/setjmp.3.asp
>> "The setjmp() function does not save the calling thread's signal mask;
>> refer to sigsetjmp()"
>> Co się dzieje gdy nie zachowa maski sygnału,
> Nie zostanie przywrócona w przypadku modyfikacji.
> 
> extern int foo=0;
> 
> disable_interrupt();//sekcja krytyczna
> if(setjmp() == 0)
> bar();
> ...
> enable_interrupt();//koniec sekcji krytycznej
> bar(){
> ...
> enable_interrupt();
> ...
> if(...)
> longjmp();
> }
> 
> Jak teraz bar wykona skok to w sekcji krytycznej będziesz miał
> odblokowane przerwania.

co także warte uwagi, nie wywołają się destruktory obiektów stworzonych 
przed longjmp (o ile powinny w związku ze zmianą scopu)

pozdrawiam

-- 
Michał Walenciak
gmail.com kicer86
http://kicer.sileman.net.pl
gg: 3729519
Technical Details
Message-ID: <jpn49b$ori$1@kushnir.sileman>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!nf1.ipartners.pl!ipartners.pl!news.sileman.pl!not-for-mail
References: <jpaq16$99s$1@inews.gazeta.pl> <jpb5fm$83n$1@mx1.internetia.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!nf1.ipartners.pl!ipartners.pl!news.sileman.pl!not-for-mail
From: Kicer <a@b.c>
Newsgroups: pl.comp.os.linux.programowanie
Subject: Re: setjmp/longjmp
Date: Fri, 25 May 2012 07:11:07 +0200
Organization: Sileman news server
Lines: 38
Message-ID: <jpn49b$ori$1@kushnir.sileman>
References: <jpaq16$99s$1@inews.gazeta.pl> <jpb5fm$83n$1@mx1.internetia.pl>
NNTP-Posting-Host: host-5db0eeee.sileman.net.pl
Mime-Version: 1.0
X-Trace: kushnir.sileman 1337922667 25458 93.176.238.238 (25 May 2012 05:11:07 GMT)
X-Complaints-To: usenet@kushnir.sileman
NNTP-Posting-Date: Fri, 25 May 2012 05:11:07 +0000 (UTC)
User-Agent: KNode/4.8.2
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit