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 Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe