Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Mon, 10 Jan 2005 20:11:36 +0100 From: Corinna Vinschen To: cygwin AT cygwin DOT com Subject: Re: problem in pthread_key_create Message-ID: <20050110191136.GI23702@cygbert.vinschen.de> Reply-To: cygwin AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com References: <200501101836 DOT j0AIaG9m007168 AT thor DOT remedy DOT nl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200501101836.j0AIaG9m007168@thor.remedy.nl> User-Agent: Mutt/1.4.2i On Jan 10 19:36, Johnny Willemsen wrote: > Hi Corinna, > > Thanks for the info. You are right, an EBUSY is returned when a valid key is > passed. I wrote first the report about EBUSY, then after that of the ! Part. > > But, why EBUSY and not EINVAL? I have not figured out why a regression test > in ACE (see www.cs.wustl.edu/~schmidt) calls this twice. We now get the > error in our logfile: > ACE_Thread::keycreate: Device or resource busy (no more keys) > > I would have expected: > ACE_Thread::keycreate: Invalid value. > > I find the error text so strange. I don't. You're asking the function to recreate a key which is already in use. "Already in use" roughly translates to EBUSY pretty well, doesn't it? Also, since the standards don't define a specific error code in this situation, you can't expect one. However, the important sentence in the SUSv3 description is: It is the responsibility of the programmer to ensure that it is called *exactly* once per key before use of the key. So it's arguably a bug in the above regression test. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader mailto:cygwin AT cygwin DOT com Red Hat, Inc. -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/