From owner-freebsd-threads@FreeBSD.ORG Wed Apr 30 19:47:07 2003 Return-Path: Delivered-To: freebsd-threads@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0049E37B401 for ; Wed, 30 Apr 2003 19:47:06 -0700 (PDT) Received: from stork.mail.pas.earthlink.net (stork.mail.pas.earthlink.net [207.217.120.188]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4AFDF43F85 for ; Wed, 30 Apr 2003 19:47:05 -0700 (PDT) (envelope-from tlambert2@mindspring.com) Received: from pool0055.cvx22-bradley.dialup.earthlink.net ([209.179.198.55] helo=mindspring.com) by stork.mail.pas.earthlink.net with asmtp (SSLv3:RC4-MD5:128) (Exim 3.33 #1) id 19B46B-0004ZS-00; Wed, 30 Apr 2003 19:47:04 -0700 Message-ID: <3EB08854.67A7BDA@mindspring.com> Date: Wed, 30 Apr 2003 19:37:08 -0700 From: Terry Lambert X-Mailer: Mozilla 4.79 [en] (Win98; U) X-Accept-Language: en MIME-Version: 1.0 To: Daniel Eischen References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-ELNK-Trace: b1a02af9316fbb217a47c185c03b154d40683398e744b8a498e23b242c4828aa81508753e9343e90387f7b89c61deb1d350badd9bab72f9c350badd9bab72f9c cc: threads@freebsd.org Subject: Re: Question about rtld-elf. Anyone?.. Anyone? X-BeenThere: freebsd-threads@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Threading on FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 May 2003 02:47:07 -0000 Daniel Eischen wrote: > And in answer to your other question. If I hack the threads > library to always resume a thread that has an expired quantum, > mozilla seems to work just fine -- I can't get it to fail. Thanks. I now claim authoritatively that according to POSIX, this is a coding error in Mozilla. I also claim that "fixing" dlopen is insufficient, and that the error will pop up in some other interface, such as mmap() or shmat(), etc., which will have exactly the same issues. For bonus points, it should be possible to save the preempted thread's ID, and, when an involuntary switch would have occurred, print out the program counter of the thread that gets preempted without this patch, but doesn't get preempted with it. That will tell you exactly what code is failing, every time. I submit the theory that it's not going to be dl*() every time. -- Terry