From: cgf AT cygnus DOT com (Christopher Faylor) Subject: Re: Thread created for select call! 3 Aug 1998 07:28:01 -0700 Message-ID: <19980803102446.C23956.cygnus.cygwin32.developers@cygnus.com> References: <3 DOT 0 DOT 3 DOT 32 DOT 19980803135519 DOT 00a9e590 AT exchange DOT parallax DOT co DOT uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii To: Andy Piper , cygwin32-developers AT cygnus DOT com On Mon, Aug 03, 1998 at 01:55:19PM +0100, Andy Piper wrote: >I'm not on this list so pardon the interruption, but it seems that a change >has been made to the cygwin dll that adversely affects XEmacs. > >Apparently select() now creates a thread for every socket it is selecting >on every time that select() is called. Can I point out that for >applications like XEmacs and many X applications which have select() at the >heart of their command loop this is incredibly bad performance-wise. XEmacs >in particular gets slower by about a factor of 4. Is there any way that >this can be prevented from happening? > >Cc to me directly please. I asked for feedback on this feature when I changed select in the last developers' snapshort. There was no dissent, so I put this in. One of the reasons for doing so was to prepare the way for a thread safe version of select. You may be seeing a handle leak, however. I forgot to close the thread handles after they started. If you have the sources, the fix is simple. Just add CloseHandles to the appropriate cleanup_* routines in select.cc. -- cgf AT cygnus DOT com "Everything has a boolean value, if you stand http://www.cygnus.com/ far enough away from it." -- Galena Alyson Canada