ewx: (geek)
[personal profile] ewx
--- server/play.c       2008-03-03 22:56:22 +0000
+++ server/play.c       2008-03-09 11:10:46 +0000
@@ -389,8 +390,14 @@
       /* np will be the pipe to disorder-normalize */
       if(socketpair(PF_UNIX, SOCK_STREAM, 0, np) < 0)
         fatal(errno, "error calling socketpair");
+      /* Beware of the Leopard!  On OS X 10.5.x, the order of the shutdown
+       * calls here DOES MATTER.  If you do the SHUT_WR first then the SHUT_RD
+       * fails iwth "Socket is not connected".  I think this is a bug but
+       * provided implementors either don't care about the order or all agree
+       * about the order, choosing the reliable order is an adequate
+       * workaround.  */
+      xshutdown(np[1], SHUT_RD);       /* decoder writes to np[1] */
       xshutdown(np[0], SHUT_WR);       /* normalize reads from np[0] */
-      xshutdown(np[1], SHUT_RD);       /* decoder writes to np[1] */
       blocking(np[0]);
       blocking(np[1]);
       /* Start disorder-normalize */

(no subject)

Date: 2008-03-09 02:33 pm (UTC)
ext_8103: (Default)
From: [identity profile] ewx.livejournal.com
Means you spot errors more quickly if you get the ends back to front l-)

November 2025

S M T W T F S
      1
2345678
91011121314 15
1617 181920 2122
23242526272829
30      

Most Popular Tags

Expand Cut Tags

No cut tags