Package: gnat-4.6
Version: 4.6.3-4
Severity: normal

Hi,

Asynchronous transfer of control (ATC) is needed in Ada to interrupt a
blocking call to an imported operation (e.g. a system call). This
method is not working on the mips architecture.

Given the following reproducer:

with Interfaces.C;

procedure Atc
is
   package C renames Interfaces.C;

   function C_Usleep (Secs : C.int) return C.int;
   pragma Import (C, C_Usleep, "usleep");

   Res : C.int;
begin
   select
      delay 1.0;
   then abort
      Res := C_Usleep (10000000);
   end select;
end Atc;

Result:
$ time ./atc

real   0m10.165s
user   0m0.108s
sys    0m0.032s

The call to usleep() is not aborted by the ATC.

- reto

-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: mips

Kernel: Linux 2.6.32-5-4kc-malta
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages gnat-4.6 depends on:
ii  gcc-4.6            4.6.3-5
ii  gnat-4.6-base      4.6.3-4
ii  libc6              2.13-32
ii  libc6-dev          2.13-32
ii  libgcc1            1:4.7.0-8
ii  libgmp10           2:5.0.5+dfsg-1.1
ii  libgnat-4.6        4.6.3-4
ii  libgnatprj4.6      4.6.3-4
ii  libgnatvsn4.6      4.6.3-4
ii  libmpc2            0.9-4
ii  libmpfr4           3.1.0-5
ii  multiarch-support  2.13-32
ii  zlib1g             1:1.2.7.dfsg-2

gnat-4.6 recommends no packages.

Versions of packages gnat-4.6 suggests:
pn  ada-reference-manual-html  <none>
pn  ada-reference-manual-info  <none>
pn  ada-reference-manual-pdf   <none>
pn  ada-reference-manual-text  <none>
pn  gnat-4.6-doc               <none>
pn  gnat-4.6-sjlj              <none>

-- no debconf information



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to