Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin AT sources DOT redhat DOT com Date: Wed, 27 Jun 2001 02:42:03 -0400 From: Christopher Faylor To: cygwin AT cygwin DOT com Subject: Re: pthreads works, sorta Message-ID: <20010627024203.A20077@redhat.com> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <030b01c0fed5$afbfddd0$c9823bd5 AT dima> <20010627023128 DOT R19058 AT redhat DOT com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.11i In-Reply-To: <20010627023128.R19058@redhat.com>; from cgf@redhat.com on Wed, Jun 27, 2001 at 02:31:28AM -0400 On Wed, Jun 27, 2001 at 02:31:28AM -0400, Christopher Faylor wrote: >On Wed, Jun 27, 2001 at 02:51:13PM +0800, Dmitry Timoshkov wrote: >>"Robert Collins" wrote: >> >>[skipped] >> >>> What does all this mean? We need to catch invalid memroy access, and >>> ValidQuery was supplied by Chris as a tool to do that. >> >>In a multithreaded environment VirtualQuery, IsBad* and similar approaches >>are wrong. It can't be guaranteed that after a successful test that memory >>will be still accessable. > >They are not necessarily wrong if they are controlled by appropriate mutexes. >The file handling code should be protected this way. I don't know about >the thread code, though. Actually, this is wrong. I was assuming that access to an object X would only be by well-behaved manipulators of object X. It's possible for a rogue thread to do something odd with a wild pointer and still screw up memory. So SEH is the only safe way to handle this. However, I don't think that SEH will actually work in the Cygwin DLL. cgf -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/