Форум сайта python.su
Андрей СветловНе знаю. я пока не думал об API, полагая что это как-то не сложно реализуется. API наверное не для модулей, а для ядра.
По поводу интерфейса - интересовал не сетевой протокол, а программный API этих взаимоменяемых модулей.
Отредактировано (Июнь 25, 2008 22:56:40)
Офлайн
bwА можно поподробнее про этот вариант и механизмы Twisted?
p.s. Как вариант, предусмотри в своем интерфейсе возможность интеграции главного цикла (если его нет, попробуй сделать) своего приложения и сетевого модуля (Twisted, в данном случае). Такой вариант использования Twisted был бы предпочтительнее. Twisted предоставляет механизмы такой интеграции, но кодить все же придется. В том числе по этой причине существует несколько реализаций реактора, но все они крутят цикл, это условие обязательное.
Офлайн
Андрей Светлов, я подобными экспериментами не занимался, так что да, такая неприятность может иметь место быть. Как вариант написать свою реализацию реактора (который будет работать в потоке), это не должно быть очень сложно, 2-3 часа на глаз.
PyCraft:
http://twistedmatrix.com/projects/core/documentation/howto/choosing-reactor.html
http://twistedmatrix.com/documents/current/api/twisted.internet.base.ReactorBase.html
http://twistedmatrix.com/documents/current/api/twisted.internet.gtk2reactor.html
и т.д.
Изучай исходники, документации нет. Смотри “примеры” - gtk2reactor, wxreactor и т.д.
..bw
Офлайн
Андрей СветловВ документации не рекомендуется использовать сигналы для связи между потоками, вместо них рекомендуется использовать блокировки.
мои попытки завести в отдельном потоке натыкались на невозможность подвесить сигнал (signal.signal(signal.SIGINT, handler)) из потока, отличного от главного. Поэтому и танцы с бубном.
Отредактировано (Июнь 26, 2008 13:27:27)
Офлайн
Сигналы пытался навесить именно реактор, а не я. Впрочем, bw прав - можно написать и свою реализацию реактора, если очень хочется. Правда, я бы оценил время как несколько превышающее два-три часа :) Но в любом случае не очень долго
Офлайн
Андрей СветловТогда это приговор твистеду. С бубном я плясать не стану и заново переписывать его не готов.
Сигналы пытался навесить именно реактор, а не я.
Отредактировано (Июнь 26, 2008 18:57:19)
Офлайн
Похоже, ты хочешь использовать его немного не так, как предполагали создатели.
Я при надлежащем использовании проблем не испытывал. Как для клиента, так и для сервера.
Глобальные функции и списки - это, конечно, хорошо. Twisted гораздо гибче и ничего подобного его deferred я еще не видел.
Офлайн