|
From: Beorn J. <beo...@ya...> - 2006-02-05 05:09:55
|
Hello,
Recently someone added some code to a project which uses
'pthread_kill', which in turn uses the 'tkill' system call.
This resulted in the "README_MISSING_SYSCALL_OR_IOCTL" error message,
which I did, and as I dug into the matter further, I found in
valgrind-3.1.0/coregrind/m_syswrap/syswrap-linux.c (including the '//zz's):
//zz PRE(sys_tkill, Special)
//zz {
//zz /* int tkill(pid_t tid, int sig); */
//zz PRINT("sys_tkill ( %d, %d )", ARG1,ARG2);
//zz PRE_REG_READ2(long, "tkill", int, tid, int, sig);
//zz if (!ML_(client_signal_OK)(ARG2)) {
//zz SET_STATUS_( -VKI_EINVAL );
//zz return;
//zz }
//zz
//zz /* If we're sending SIGKILL, check to see if the target is one of
//zz our threads and handle it specially. */
//zz if (ARG2 == VKI_SIGKILL && ML_(do_sigkill)(ARG1, -1))
//zz SET_STATUS_(0);
//zz else
//zz SET_STATUS_(VG_(do_syscall2)(SYSNO, ARG1, ARG2));
//zz
//zz if (VG_(clo_trace_signals))
//zz VG_(message)(Vg_DebugMsg, "tkill: sent signal %d to pid %d",
//zz ARG2, ARG1);
//zz // Check to see if this kill gave us a pending signal
//zz XXX FIXME VG_(poll_signals)(tid);
//zz }
So, it seems there are some subtleties here that aren't obvious.
The same thing appears in the svn version.
Anyone have any suggestions as to how to proceed?
Thanks,
Beorn Johnson
__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
|