Subject: bug#562 closed by Chong Yidong <[email-masked]> (Re: 23.0.60; OSX: make-network-process reuses existing file descriptors)

From: [email-masked] (Emacs bug Tracking System)

This is an automatic notification regarding your bug report
which was filed against the emacs package:

#562: 23.0.60; OSX: make-network-process reuses existing file descriptors

It has been closed by Chong Yidong <[email-masked]>.

Their explanation is attached below along with your original report.
If this explanation is unsatisfactory and you have not received a
better one in a separate message then please contact Chong Yidong <[email-masked]> by
replying to this email.

-- 
562: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=562
Emacs Bug Tracking System
Contact [email-masked] with problems
>From [email-masked] Wed Aug 13 17:53:46 2008
From: Chong Yidong <[email-masked]>
To: YAMAMOTO Mitsuharu <[email-masked]>
Cc: Markus Triska <[email-masked]>, [email-masked]
Subject: Re: 23.0.60; OSX: make-network-process reuses existing file descriptors
Date: Wed, 13 Aug 2008 20:54:20 -0400

> > Commenting out a res_init call in process.c makes this go away for
> > me. I do not know what other consequences this has though:
>
> You can comment it out on Mac OS X, because calling `res_init' does
> not make sense at all on that platform.  Neither does linking
> libresolv.
>
>   http://lists.gnu.org/archive/html/emacs-devel/2007-11/msg01467.html
>   http://lists.gnu.org/archive/html/emacs-devel/2007-10/msg01254.html
>
> So, it turns out to be not only meaningless, but also harmful on a
> particular version (10.4) of Mac OS X.

I've undef'ed HAVE_LIBRESOLV and HAVE_RES_INIT in s/darwin.h, as you
suggested.  Thanks.

>From [email-masked] Tue Jul 15 04:34:06 2008
From: Markus Triska <[email-masked]>
To: [email-masked]
Subject: 23.0.60; OSX: make-network-process reuses existing file descriptors
Date: Tue, 15 Jul 2008 13:33:48 +0200

When I evaluate the following form in "emacs -Q":

   (progn
     (setq p1 (make-network-process :name "p1" :host "www.fsf.org" :service 80))
     (setq p2 (make-network-process :name "p2" :host "www.fsf.org" :service 80))
     (setq p3 (make-network-process :name "p3" :host "www.fsf.org" :service 80))
     (delete-process p2)
     (process-send-string p3 "there"))

I get:

  Debugger entered--Lisp error: (file-error "writing to process" "bad file descriptor" #<process p3<1>>)
  process-send-string(#<process p3<1>> "hi")

This is because p2 and p3 are both created with infd=outfd=0, thus
closing the channel for p2 also closes that of p3.

In GNU Emacs 23.0.60.1 (i386-apple-darwin8.11.1, GTK+ Version 2.12.9)
 of 2008-07-13 on mt-computer.local
Windowing system distributor `The XFree86 Project, Inc', version 11.0.40400000
configured using `configure  'CFLAGS=-O0 -g''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: nil
  value of $XMODIFIERS: nil
  locale-coding-system: nil
  default-enable-multibyte-characters: t