Author: sewardj
Date: 2007-11-18 01:16:52 +0000 (Sun, 18 Nov 2007)
New Revision: 7179

Log:
Try to fix, or at least avoid if possible, some arbitrary delays at
thread creation time observed when running on POWER5 64-bit Linux.

Modified:
   trunk/helgrind/hg_intercepts.c


Modified: trunk/helgrind/hg_intercepts.c
===================================================================
--- trunk/helgrind/hg_intercepts.c      2007-11-17 23:00:47 UTC (rev 7178)
+++ trunk/helgrind/hg_intercepts.c      2007-11-18 01:16:52 UTC (rev 7179)
@@ -216,8 +216,13 @@
       /* we have to wait for the child to notify the tool of its
          pthread_t before continuing */
       while (xargs[2] != 0) {
-         // FIXME: add a yield client request
-         /* do nothing */
+         /* Do nothing.  We need to spin until the child writes to
+            xargs[2].  However, that can lead to starvation in the
+            child and very long delays (eg, tc19_shadowmem on
+            ppc64-linux Fedora Core 6).  So yield the cpu if we can,
+            to let the child run at the earliest available
+            opportunity. */
+         sched_yield();
       }
    } else { 
       DO_PthAPIerror( "pthread_create", ret );


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Valgrind-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/valgrind-developers

Reply via email to