Issue #19478: Make choice of semaphore prefix more flexible.

This commit is contained in:
Richard Oudkerk 2013-11-02 17:05:07 +00:00
parent 32dfef81a2
commit e943697750
2 changed files with 10 additions and 4 deletions

View File

@ -301,10 +301,16 @@ class _MainProcess(BaseProcess):
self._parent_pid = None self._parent_pid = None
self._popen = None self._popen = None
self._config = {'authkey': AuthenticationString(os.urandom(32)), self._config = {'authkey': AuthenticationString(os.urandom(32)),
'semprefix': 'mp'} 'semprefix': '/mp'}
# Note that some versions of FreeBSD only allow named # Note that some versions of FreeBSD only allow named
# semaphores to have names of up to 14 characters. Therfore # semaphores to have names of up to 14 characters. Therefore
# we choose a short prefix. # we choose a short prefix.
#
# On MacOSX in a sandbox it may be necessary to use a
# different prefix -- see #19478.
#
# Everything in self._config will be inherited by descendant
# processes.
_current_process = _MainProcess() _current_process = _MainProcess()

View File

@ -115,8 +115,8 @@ class SemLock(object):
@staticmethod @staticmethod
def _make_name(): def _make_name():
return '/%s-%s' % (process.current_process()._config['semprefix'], return '%s-%s' % (process.current_process()._config['semprefix'],
next(SemLock._rand)) next(SemLock._rand))
# #
# Semaphore # Semaphore