From: Lutz Donnerhacke <lutz@iks-jena.de>
Subject: Re: Signal handler blocks proteced type
Date: Fri, 26 Mar 2004 10:00:13 +0000 (UTC)
Date: 2004-03-26T10:00:13+00:00 [thread overview]
Message-ID: <slrnc67vpd.m2.lutz@taranis.iks-jena.de> (raw)
In-Reply-To: slrnc664b5.nt.lutz@taranis.iks-jena.de
* Lutz Donnerhacke wrote:
> A protected type with a signal handler is instantiated in order to catch a
> signal. If the signal is not catched, everything works fine. If the signal
> was delivered, the inner scope will not be terminated, because the protected
> type can not be finalized.
>
> Why?
Ada.Interrupts.Detach_Handler is broken. It does not return if the signal
was delivered.
Changing the example to 'pragma Interrupt_Handler' and an explicit
Attach_Handler works fine (termination of the enviroment task succeeds).
Any call to Detach_Handler after a signal delivery results in a blocking
runtime call.
select
delay 2.0;
else abort
Detach_Handler(SIGHUP);
end select;
does not work. Even an Abort_Task call from an other task has no effect.
The runtime (Linux-Threads) seems to miss an SIGCHILD and waits forever for
the wrong clone.
next prev parent reply other threads:[~2004-03-26 10:00 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-03-25 17:05 Signal handler blocks proteced type Lutz Donnerhacke
2004-03-26 10:00 ` Lutz Donnerhacke [this message]
2004-03-26 17:12 ` Florian Weimer
2004-03-27 17:45 ` Simon Wright
2004-03-27 23:38 ` Florian Weimer
2004-03-28 10:27 ` Simon Wright
-- strict thread matches above, loose matches on Subject: below --
2004-03-25 17:03 Lutz Donnerhacke
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox