This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: problem in pthread_key_create

On Mon, 10 Jan 2005, Corinna Vinschen wrote:

> 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 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.

I think Johnny was referring to the "no more keys" part when he said that
the error text was strange.  That is indeed strange, but probably a bug in
the way the regression test interprets that specific error code.

> 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.

If not in the way pthread_key_create is invoked, then in the
interpretation of the resulting error.
      |\      _,,,---,,_
ZZZzz /,`.-'`'    -.  ;-;;,_
     |,4-  ) )-,_. ,\ (  `'-'		Igor Pechtchanski, Ph.D.
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

"The Sun will pass between the Earth and the Moon tonight for a total
Lunar eclipse..." -- WCBS Radio Newsbrief, Oct 27 2004, 12:01 pm EDT

Unsubscribe info:
Problem reports:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]