Also attached is a diff for strace between non-threaded and threaded.
execve("./sleep", ["./sleep"], [/* 38 vars */]) = 0
execve("./sleep", ["./sleep"], [/* 38 vars */]) = 0
brk(0) = 0x83c2000 | brk(0)
= 0x8ff0000
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONY | mmap2(NULL,
8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONY
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such
open("/etc/ld.so.cache", O_RDONLY) = 3
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=68273, ...}) = 0 fstat64(3,
{st_mode=S_IFREG|0644, st_size=68273, ...}) = 0
mmap2(NULL, 68273, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb801b000 | mmap2(NULL,
68273, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f8d000
close(3) = 0 close(3)
= 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such
open("/lib/tls/i686/cmov/libutil.so.1", O_RDONLY) = 3
open("/lib/tls/i686/cmov/libutil.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340\ read(3,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340\
fstat64(3, {st_mode=S_IFREG|0644, st_size=9688, ...}) = 0 fstat64(3,
{st_mode=S_IFREG|0644, st_size=9688, ...}) = 0
mmap2(NULL, 12424, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYW | mmap2(NULL,
12424, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYW
mmap2(0xb8019000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP |
mmap2(0xb7f8b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP
close(3) = 0 close(3)
= 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such
open("/lib/tls/i686/cmov/libdl.so.2", O_RDONLY) = 3
open("/lib/tls/i686/cmov/libdl.so.2", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 \n\0 read(3,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 \n\0
fstat64(3, {st_mode=S_IFREG|0644, st_size=9676, ...}) = 0 fstat64(3,
{st_mode=S_IFREG|0644, st_size=9676, ...}) = 0
mmap2(NULL, 12408, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYW | mmap2(NULL,
12408, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYW
mmap2(0xb8015000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP |
mmap2(0xb7f87000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP
close(3) = 0 close(3)
= 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such
open("/lib/tls/i686/cmov/libm.so.6", O_RDONLY) = 3
open("/lib/tls/i686/cmov/libm.so.6", O_RDONLY) = 3
read(3, "\177elf\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\...@4\0\ read(3,
"\177elf\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\...@4\0\
fstat64(3, {st_mode=S_IFREG|0644, st_size=149332, ...}) = 0 fstat64(3,
{st_mode=S_IFREG|0644, st_size=149332, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONY | mmap2(NULL,
4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONY
mmap2(NULL, 151680, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENY | mmap2(NULL,
151680, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENY
mmap2(0xb8010000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP |
mmap2(0xb7f82000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP
close(3) = 0 close(3)
= 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such
open("/usr/lib/libgmp.so.3", O_RDONLY) = 3
open("/usr/lib/libgmp.so.3", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200\ read(3,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\200\
fstat64(3, {st_mode=S_IFREG|0644, st_size=284176, ...}) = 0 fstat64(3,
{st_mode=S_IFREG|0644, st_size=284176, ...}) = 0
mmap2(NULL, 287052, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENY | mmap2(NULL,
287052, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENY
mmap2(0xb7fea000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP |
mmap2(0xb7f5c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP
close(3) = 0 close(3)
= 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such
open("/lib/tls/i686/cmov/librt.so.1", O_RDONLY) = 3
open("/lib/tls/i686/cmov/librt.so.1", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\31\ read(3,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`\31\
fstat64(3, {st_mode=S_IFREG|0644, st_size=34720, ...}) = 0 fstat64(3,
{st_mode=S_IFREG|0644, st_size=34720, ...}) = 0
mmap2(NULL, 33388, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYW | mmap2(NULL,
33388, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYW
mmap2(0xb7fa3000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP |
mmap2(0xb7f15000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP
close(3) = 0 <
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such <
open("/lib/tls/i686/cmov/libc.so.6", O_RDONLY) = 3 <
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340g <
fstat64(3, {st_mode=S_IFREG|0755, st_size=1425800, ...}) = 0 <
mmap2(NULL, 1431152, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DEN <
mmap2(0xb7f96000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MA <
mmap2(0xb7f99000, 9840, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP <
close(3) = 0 close(3)
= 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such
open("/lib/tls/i686/cmov/libpthread.so.0", O_RDONLY) = 3
open("/lib/tls/i686/cmov/libpthread.so.0", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000H\ read(3,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000H\
fstat64(3, {st_mode=S_IFREG|0755, st_size=116457, ...}) = 0 fstat64(3,
{st_mode=S_IFREG|0755, st_size=116457, ...}) = 0
mmap2(NULL, 98784, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYW | mmap2(NULL,
98784, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYW
mmap2(0xb7e3a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP |
mmap2(0xb7f0a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP
mmap2(0xb7e3c000, 4576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP |
mmap2(0xb7f0c000, 4576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP
close(3) = 0 | close(3)
= 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONY |
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONY |
open("/lib/tls/i686/cmov/libc.so.6", O_RDONLY) = 3
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7e236b0, | read(3,
"\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340g
mprotect(0xb7e3a000, 4096, PROT_READ) = 0 | fstat64(3,
{st_mode=S_IFREG|0755, st_size=1425800, ...}) = 0
mprotect(0xb7f96000, 8192, PROT_READ) = 0 | mmap2(NULL,
1431152, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DEN
mprotect(0xb7fa3000, 4096, PROT_READ) = 0 |
mmap2(0xb7eef000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MA
mprotect(0xb7fea000, 4096, PROT_READ) = 0 |
mmap2(0xb7ef2000, 9840, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP
mprotect(0xb8010000, 4096, PROT_READ) = 0 | close(3)
= 0
mprotect(0xb8015000, 4096, PROT_READ) = 0 | mmap2(NULL,
4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONY
mprotect(0xb8019000, 4096, PROT_READ) = 0 | mmap2(NULL,
4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONY
mprotect(0x808e000, 4096, PROT_READ) = 0 |
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7d956b0,
mprotect(0xb8049000, 4096, PROT_READ) = 0 |
mprotect(0xb7eef000, 8192, PROT_READ) = 0
munmap(0xb801b000, 68273) = 0 |
mprotect(0xb7f0a000, 4096, PROT_READ) = 0
set_tid_address(0xb7e236f8) = 14907 |
mprotect(0xb7f15000, 4096, PROT_READ) = 0
set_robust_list(0xb7e23700, 0xc) = 0 |
mprotect(0xb7f5c000, 4096, PROT_READ) = 0
futex(0xbff49c80, 0x81 /* FUTEX_??? */, 1) = 0 |
mprotect(0xb7f82000, 4096, PROT_READ) = 0
rt_sigaction(SIGRTMIN, {0xb7e292e0, [], SA_SIGINFO}, NULL, 8) |
mprotect(0xb7f87000, 4096, PROT_READ) = 0
rt_sigaction(SIGRT_1, {0xb7e29720, [], SA_RESTART|SA_SIGINFO} |
mprotect(0xb7f8b000, 4096, PROT_READ) = 0
>
mprotect(0x8097000, 4096, PROT_READ) = 0
>
mprotect(0xb7fbb000, 4096, PROT_READ) = 0
>
munmap(0xb7f8d000, 68273) = 0
>
set_tid_address(0xb7d956f8) = 14781
>
set_robust_list(0xb7d95700, 0xc) = 0
>
futex(0xbf9bb6f0, 0x81 /* FUTEX_??? */, 1) = 0
>
rt_sigaction(SIGRTMIN, {0xb7ef92e0, [], SA_SIGINFO}, NULL, 8)
>
rt_sigaction(SIGRT_1, {0xb7ef9720, [], SA_RESTART|SA_SIGINFO}
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_IN
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_IN
uname({sys="Linux", node="porges-laptop", ...}) = 0
uname({sys="Linux", node="porges-laptop", ...}) = 0
gettimeofday({1234309355, 68684}, NULL) = 0 |
gettimeofday({1234309268, 914197}, NULL) = 0
brk(0) = 0x83c2000 | brk(0)
= 0x8ff0000
brk(0x83e3000) = 0x83e3000 | brk(0x9011000)
= 0x9011000
mmap2(NULL, 2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_AN | mmap2(NULL,
2097152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_AN
munmap(0xb7c23000, 905216) = 0 |
munmap(0xb7b95000, 438272) = 0
munmap(0xb7e00000, 143360) = 0 |
munmap(0xb7d00000, 610304) = 0
rt_sigaction(SIGVTALRM, {0x8066ef0, [], SA_RESTART}, NULL, 8) |
rt_sigaction(SIGVTALRM, {0x8068c90, [], SA_RESTART}, NULL, 8)
gettimeofday({1234309355, 69767}, NULL) = 0 |
timer_create(CLOCK_REALTIME, {(nil), SIGVTALRM, SIGEV_SIGNAL,
timer_create(0xfffffffa /* CLOCK_??? */, {(nil), SIGVTALRM, S <
timer_settime(0, 0, {it_interval={0, 20000000}, it_value={0,
timer_settime(0, 0, {it_interval={0, 20000000}, it_value={0,
rt_sigaction(SIGINT, {0x8067d00, [], 0}, {SIG_DFL}, 8) = 0 |
rt_sigaction(SIGINT, {0x8069a80, [], 0}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGINT, NULL, {0x8067d00, [], 0}, 8) = 0 |
rt_sigaction(SIGINT, NULL, {0x8069a80, [], 0}, 8) = 0
rt_sigaction(SIGINT, {0x8067d00, [], 0}, NULL, 8) = 0 |
rt_sigaction(SIGINT, {0x8069a80, [], 0}, NULL, 8) = 0
rt_sigaction(SIGPIPE, {SIG_IGN}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGPIPE, {SIG_IGN}, {SIG_DFL}, 8) = 0
getrusage(RUSAGE_SELF, {ru_utime={0, 0}, ru_stime={0, 0}, ...
getrusage(RUSAGE_SELF, {ru_utime={0, 0}, ru_stime={0, 0}, ...
gettimeofday({1234309355, 70870}, NULL) = 0 |
gettimeofday({1234309268, 916356}, NULL) = 0
>
getrusage(RUSAGE_SELF, {ru_utime={0, 0}, ru_stime={0, 0}, ...
>
gettimeofday({1234309268, 916704}, NULL) = 0
>
getrusage(RUSAGE_SELF, {ru_utime={0, 0}, ru_stime={0, 0}, ...
>
gettimeofday({1234309268, 917013}, NULL) = 0
> mmap2(NULL,
8392704, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIV
>
mprotect(0xb73ff000, 4096, PROT_NONE) = 0
>
clone(child_stack=0xb7bff4c4, flags=CLONE_VM|CLONE_FS|CLONE_F
>
futex(0x8ffb990, 0x80 /* FUTEX_??? */, 1) = 0
>
futex(0x8ffb9bc, 0x81 /* FUTEX_??? */, 1) = 0
> pipe([3, 4])
= 0
>
futex(0x8ffba50, 0x85 /* FUTEX_??? */, 1) = 1
>
futex(0x8ffb990, 0x80 /* FUTEX_??? */, 3) = 0
>
futex(0x8ffb9bc, 0x81 /* FUTEX_??? */, 1) = 0
rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
rt_sigaction(SIGINT, {0x80680d0, [], SA_ONESHOT}, NULL, 8) = |
rt_sigaction(SIGINT, {0x8069de0, [], SA_ONESHOT}, NULL, 8) =
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, 0xbff47b60) = -1 ENOT | ioctl(1,
SNDCTL_TMR_TIMEBASE or TCGETS, 0xbf9b95b0) = -1 ENOT
>
getrusage(RUSAGE_SELF, {ru_utime={0, 0}, ru_stime={0, 0}, ...
>
gettimeofday({1234309268, 919175}, NULL) = 0
> mmap2(NULL,
8392704, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIV
>
mprotect(0xb6bfe000, 4096, PROT_NONE) = 0
>
clone(child_stack=0xb73fe4c4, flags=CLONE_VM|CLONE_FS|CLONE_F
>
futex(0x8ffbbbc, 0x81 /* FUTEX_??? */, 1) = 1
>
futex(0x809c050, 0x81 /* FUTEX_??? */, 1) = 1
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({5, 0}, {5, 0}) = 0 | nanosleep({5,
0}, 0xbf9b961c) = ? ERESTART_RESTARTB
> --- SIGVTALRM
(Virtual timer expired) @ 0 (0) ---
> sigreturn()
= ? (mask now [])
select(2, [], [1], NULL, {0, 0}) = 1 (out [1], left {0 select(2, [],
[1], NULL, {0, 0}) = 1 (out [1], left {0
write(1, "Waiting for 5 seconds.\nDone.\n", 29Waiting for 5 s | write(1,
"Waiting for 5 seconds.\n5\nDone.\n", 31Waiting for
> 5
Done. Done.
) = 29 | ) = 31
>
getrusage(RUSAGE_SELF, {ru_utime={0, 0}, ru_stime={0, 0}, ...
>
gettimeofday({1234309268, 937225}, NULL) = 0
getrusage(RUSAGE_SELF, {ru_utime={0, 0}, ru_stime={0, 0}, ...
getrusage(RUSAGE_SELF, {ru_utime={0, 0}, ru_stime={0, 0}, ...
gettimeofday({1234309360, 73191}, NULL) = 0 |
gettimeofday({1234309268, 937481}, NULL) = 0
> write(4,
"\376", 1) = 1
rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
>
futex(0x8ffbb90, 0x85 /* FUTEX_??? */, 1) = 1
> sched_yield()
= 0
timer_settime(0, 0, {it_interval={0, 0}, it_value={0, 0}}, NU
timer_settime(0, 0, {it_interval={0, 0}, it_value={0, 0}}, NU
timer_delete(0) = 0 timer_delete(0)
= 0
fcntl64(0, F_GETFL) = 0x2 (flags O_RDWR) fcntl64(0,
F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(1, F_GETFL) = 0x8001 (flags O_WRO fcntl64(1,
F_GETFL) = 0x8001 (flags O_WRO
fcntl64(2, F_GETFL) = 0x8001 (flags O_WRO fcntl64(2,
F_GETFL) = 0x8001 (flags O_WRO
rt_sigprocmask(SIG_BLOCK, [TTOU], [], 8) = 0
rt_sigprocmask(SIG_BLOCK, [TTOU], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigaction(SIGINT, {SIG_DFL}, NULL, 8) = 0
rt_sigaction(SIGINT, {SIG_DFL}, NULL, 8) = 0
rt_sigaction(SIGPIPE, {SIG_DFL}, NULL, 8) = 0
rt_sigaction(SIGPIPE, {SIG_DFL}, NULL, 8) = 0
getrusage(RUSAGE_SELF, {ru_utime={0, 0}, ru_stime={0, 0}, ...
getrusage(RUSAGE_SELF, {ru_utime={0, 0}, ru_stime={0, 0}, ...
gettimeofday({1234309360, 74816}, NULL) = 0 |
gettimeofday({1234309268, 939581}, NULL) = 0
exit_group(0) = ? exit_group(0)
= ?
Process 14907 detached | Process 14781
detached
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
