[Python-Dev] Issue #10348: concurrent.futures doesn't work on BSD

Victor Stinner victor.stinner at haypocalc.com
Wed Dec 29 14:17:33 CET 2010


Hi,

FreeBSD 7.2 3.x buildbot is red since some weeks (or months?) because of
a concurrent.futures failure. The problem is that
test_concurrent_futures uses many (multiprocessing) POSIX semaphores,
whereas POSIX semaphores support in FreeBSD is recent and limited. We
have to use SysV semaphores (ftok, semget, semop, semctl, ...) instead
of POSIX semaphores (sem_open, sem_getvalue, sem_unlink, ...). See:

 * http://bugs.python.org/issue10348
 * "Too many open files" errors on "x86 FreeBSD 7.2 3.x" buildbot
   ^-- thread in python-dev opened last month

I would like to know if it should be considered as a release blocker.
Georg Brandl said yes on IRC. Does anyone know SysV API? I tried to
write a patch, but I never used semaphores (POSIX or SysV).

There is a third party module which looks complete and stable:
http://semanchuk.com/philip/sysv_ipc/

It is released under the BSD license. It supports semaphores, but also
shared memory and message queues. We don't need all of those, semaphores
would be enough. I added its author (Philip Semanchuk) to this thread.

I don't know how we should decide to use POSIX or SysV semaphores. It
looks like SysV is preferred on FreeBSD and Darwin (and maybe all BSD
based OSes), and POSIX is preferred on Linux.

Victor



More information about the Python-Dev mailing list