public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug ada/43485] New: select ... then abort ... end select don't abort
@ 2010-03-22 21:39 vaurele at gmx dot com
0 siblings, 0 replies; only message in thread
From: vaurele at gmx dot com @ 2010-03-22 21:39 UTC (permalink / raw)
To: gcc-bugs
On the small program below, "Something_Usefull" is never aborted: when I enter
a string, my CPU usage go to 100% but then Put_Line following the "select then
abort" is never executed.
This was observed on my Ubuntu Karmic with gnat-4.4 and gnat-4.3. A friend of
mine reproduced it with 4.4.3 and 4.5.0
for information:
% gcc -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.1-4ubuntu9'
--with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared
--enable-multiarch --enable-linker-build-id --with-system-zlib
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls
--enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc
--enable-targets=all --disable-werror --with-arch-32=i486 --with-tune=generic
--enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu
--target=i486-linux-gnu
Thread model: posix
gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu9)
-----------------------------------
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Real_Time; use Ada.Real_Time;
procedure Test_Select is
type State_Type is (Start, Stop);
protected State is
procedure Set (Value : State_Type);
entry Wait_For (State_Type);
private
Current : State_Type := Stop;
end State;
protected body State is
procedure Set (Value : State_Type) is
begin
Current := Value;
end Set;
entry Wait_For (for S in State_Type) when Current = S is
begin
null;
end Wait_For;
end State;
task Keyboard;
task body Keyboard is
begin
declare
S : String(1 .. 1024);
Last : Integer;
pragma Unreferenced (Last);
begin
Get_Line (S, Last);
State.Set (Start);
Put_Line ("State is now 'Start'");
end;
end Keyboard;
procedure Something_Usefull is
begin
loop
null;
delay until Clock + To_Time_Span (0.1);
end loop;
end Something_Usefull;
begin
Put_Line ("Before select");
select
State.Wait_For (Start);
then abort
Something_Usefull;
end select;
Put_Line ("Done");
end Test_Select;
--
Summary: select ... then abort ... end select don't abort
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: ada
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: vaurele at gmx dot com
GCC build triplet: i486-linux-gnu
GCC host triplet: i486-linux-gnu
GCC target triplet: i486-linux-gnu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43485
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2010-03-22 21:39 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-03-22 21:39 [Bug ada/43485] New: select ... then abort ... end select don't abort vaurele at gmx dot com
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).