Robin Becker wrote: > Robin Becker wrote: >> Andrew MacIntyre wrote: >>> Robin Becker wrote: >>> >>>> I think it uses sysv semaphores and although freeBSD 6 has them >>>> perhaps there's something I need to do to allow them to work. >>> IIRC, you need to explicitly configure loading the kernel module, or >>> compile the kernel with the necessary option in the config file. >>> >> I tried loading the module, but it seems already to be in the kernel. >> Probably some sysctl stuff to do. >> > In fact the semaphore modules are built in now. I did some debugging and the > error happens in the code at SemSet.c line 25 > > > for (i = 0; i < sets; i++) { > int id = semget(IPC_PRIVATE, MAX_SYSV_SET_SIZE, IPC_CREAT > | S_IREAD | S_IWRITE); //SEM_R | SEM_A); > if (id == -1) { > > the first semget(i=0) succeeds and the second fails with an errno ENOSPC > which > from the man page implies a resource issue of some kind. > > [ENOSPC] Insufficiently many semaphores are available. > [ENOSPC] The kernel could not allocate a struct semid_ds. > > > I guess the freebsd limits must be different to the original development > environment.
The number of semaphores is certainly tunable - the SYSV IPC KERNEL PARAMETERS section in the file /usr/src/sys/conf/NOTES lists the SYSV semaphore parameters that can be set in the kernel config. -- ------------------------------------------------------------------------- Andrew I MacIntyre "These thoughts are mine alone..." E-mail: [EMAIL PROTECTED] (pref) | Snail: PO Box 370 [EMAIL PROTECTED] (alt) | Belconnen ACT 2616 Web: http://www.andymac.org/ | Australia -- http://mail.python.org/mailman/listinfo/python-list