|
From: Mike A. <man...@ac...> - 2003-10-28 14:53:03
|
> Jeremy Fitzhardinge wrote:
>=20
> Yes, that's a known problem with the stable version of valgrind.
> Unless it manages to intercept every blocking function, it can
> deadlock all the threads.
>=20
> I've attached a patch I used to fix this once, but I don't think it
> applies any more. You might be able to tweak it into a working
> form.
Yes, I was able to tweak it to get it to work wirh recvmsg()! Thanks,
Jeremy. For the record, here's the patch I came up with, in case
anyone else finds it useful:
--- coregrind/vg_libpthread.c Fri Oct 24 23:23:00 2003
+++ coregrind/vg_libpthread.c Fri Oct 24 23:22:52 2003
@@ -2259,6 +2259,8 @@
int recvmsg(int s, struct msghdr *msg, int flags)
{
__my_pthread_testcancel();
+ VGR_(wait_for_fd_to_be_readable_or_erring)(s);
+ __my_pthread_testcancel();
return __libc_recvmsg(s, msg, flags);
}
Thanks again!
-Mike=20
=20
--------------------------------------------------------
=20
DISCLAIMER: The information contained in this e-mail is confidential =
and is intended solely for the review of the named addressee, and in =
conjunction with specific Acopia Networks business. Any review, =
retransmission, dissemination or other use of, or taking of any action =
in reliance upon, this information by persons or entities other than the =
intended recipient is prohibited. If you are unable to treat this =
information accordingly, or are not the intended recipient, please =
notify us immediately by returning the e-mail to the originator. =20
|