tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

SEM_VALUE_MAX too big?



Hi,

I needed sysconf(_SC_SEM_VALUE_MAX) and found that it is not yet
supported in NetBSD-current but that there is SEM_VALUE_MAX defined in
/usr/include/semaphore.h.
  #define SEM_VALUE_MAX   (~0U)

If we ever want to support sysconf(_SC_SEM_VALUE_MAX), there will be the
slight difficulty that sysconf() returns "long" and our value for
SEM_VALUE_MAX is too big for a long.

As far as I could find, some other systems use a lower value for
SEM_VALUE_MAX (found through a web search):

  Linux uses "(int) (~0U >>1)" (according to the LSB definition)
  Solaris seems to use 2147483647 (= INT_MAX)
  OpenSolaris uses INT_MAX
  Darwin uses 32767


  FreeBSD uses the same value as NetBSD, (~0U)
  OpenBSD uses UINT_MAX

At the moment, the high value prevents us from supporting
sysconf(_SC_SEM_VALUE_MAX), assuming that we do _not_ want to have two
different values for the same thing.
What would we loose if we lowered the value of SEM_VALUE_MAX by half?

ciao
     Klaus


Home | Main Index | Thread Index | Old Index