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

"Martin v. Löwis" martin at v.loewis.de
Thu Dec 30 10:16:43 CET 2010


Am 30.12.2010 04:45, schrieb Brian Quinlan:
> On Dec 29, 2010, at 2:55 PM, Victor Stinner wrote:
> 
>> Le mercredi 29 décembre 2010 à 21:49 +0100, "Martin v. Löwis" a écrit :
>>> Of course, one may wonder why test_first_completed manages
>>> to create 41 SemLock objects, when all it tries to do is two future
>>> calls.
>>
>> More numbers (on Linux):
>>
>> - Queue: 3 SemLock
>> - Condition: 4 SemLock
>> - Event: 5 SemLock
>> - Call (test_concurrent_futures): 10 SemLock (2 Event)
>> - ProcessPoolExecutor: 11 SemLock (2 Queue, 1 Condition)
>>
>> FreeBSD 7.2 is limited to 30 semaphores, so with ProcessPoolExecutor,
>> you can only create *one* Call object, whereas some tests use 4 Call
>> objects or more.
> 
> Great detective work!  This would suggest that ProcessPoolExecutors are
> useable on FreeBSD 7.2 so long as the user doesn't create more than two
> at once (which probably isn't a big deal for most apps).

IIUC, this is a system-wide limit. So if you run any non-trivial app
a number of times will quickly cause failure. This is just not
practical.

> So skipping the test is probably the way to go.

I'm still -1 on that proposal.

Regards,
Martin



More information about the Python-Dev mailing list