Bug#673772: mips: ATC with syscalls not working
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
Reply to: