twisted
От: meandr  
Дата: 02.09.10 16:06
Оценка:
Есть твистед приложение и вот захотелось его помасштабировать на ядра процессора в результате родился такой код:
from twisted.internet import reactor;
from proxy import ProxyProtocolImpl;
import os;

reactor.listenUNIX("/tmp/twisted.sock", ProxyProtocolImpl());
for i in xrange(3):
  l_pid = os.fork();

  if(l_pid == 0):
    break;

reactor.run()
Все вообщем то ничего только при shutdown приложения вывливаеться такая ошибка 3 раза:
Traceback (most recent call last):
  File "/usr/local/lib/python2.6/site-packages/twisted/internet/defer.py",
line 249, in addCallbacks
    self._runCallbacks()
  File "/usr/local/lib/python2.6/site-packages/twisted/internet/defer.py",
line 441, in _runCallbacks
    self.result = callback(self.result, *args, **kw)
  File "/usr/local/lib/python2.6/site-packages/twisted/internet/base.py",
line 426, in _continueFiring
    callable(*args, **kwargs)
  File "/usr/local/lib/python2.6/site-packages/twisted/internet/base.py",
line 613, in disconnectAll
    failure.Failure(main.CONNECTION_LOST))
--- <exception caught here> ---
  File "/usr/local/lib/python2.6/site-packages/twisted/python/log.py", line
84, in callWithLogger
    return callWithContext({"system": lp}, func, *args, **kw)
  File "/usr/local/lib/python2.6/site-packages/twisted/python/log.py", line
69, in callWithContext
    return context.call({ILogContext: newCtx}, func, *args, **kw)
  File "/usr/local/lib/python2.6/site-packages/twisted/python/context.py",
line 59, in callWithContext
    return self.currentContext().callWithContext(ctx, func, *args, **kw)
  File "/usr/local/lib/python2.6/site-packages/twisted/python/context.py",
line 37, in callWithContext
    return func(*args,**kw)
  File "/usr/local/lib/python2.6/site-packages/twisted/internet/unix.py",
line 134, in connectionLost
    os.unlink(self.port)
exceptions.OSError: [Errno 2] No such file or directory:
'/tmp//tmp/twisted.sock'
Вообщем то все понятно оставшиеся 3 процесса пытаються удалить файл сокета который уже удален породившим процессом.Задал я вопрос в комюнити твистеда на что мне ответили, что такое поведение не поддерживаеться, и дали вот такую ссылку:http://twistedmatrix.com/trac/ticket/4387Но честно говоря там по моему не совсем то что мне нужно. И почему поведение с fork не поддерживаеться тоже не понятно.
Posted via RSDN NNTP Server 2.1 beta
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.