Python & boost.asio
От: savitar  
Дата: 04.07.10 07:25
Оценка:
Есть желание с помощью boost.python сделать библиотеку из C++-ного кода активно использующего boost.asio в асинхронной манере. Стоит ли так делать, с какими проблемами можно столкнуться. В тестовом варианте работает без проблем.
Re: Python & boost.asio
От: FR  
Дата: 05.07.10 05:31
Оценка: +1
Здравствуйте, savitar, Вы писали:

S>Есть желание с помощью boost.python сделать библиотеку из C++-ного кода активно использующего boost.asio в асинхронной манере. Стоит ли так делать, с какими проблемами можно столкнуться. В тестовом варианте работает без проблем.


Если асинхронно будет крутится только C++ код проблем не будет. Если же нужны обратные вызовы то придется внимательно следить за GIL http://docs.python.org/c-api/init.html#thread-state-and-the-global-interpreter-lock
Re[2]: Python & boost.asio
От: savitar  
Дата: 05.07.10 10:41
Оценка:
Здравствуйте, FR, Вы писали:

FR>Здравствуйте, savitar, Вы писали:


S>>Есть желание с помощью boost.python сделать библиотеку из C++-ного кода активно использующего boost.asio в асинхронной манере. Стоит ли так делать, с какими проблемами можно столкнуться. В тестовом варианте работает без проблем.


FR>Если асинхронно будет крутится только C++ код проблем не будет. Если же нужны обратные вызовы то придется внимательно следить за GIL http://docs.python.org/c-api/init.html#thread-state-and-the-global-interpreter-lock


Правильно я понимаю, что если программа на Python однопоточная и при этом io_service::run() вызван единожды из единственного питоновского потока, то указанных проблем не будет?
Re[3]: Python & boost.asio
От: FR  
Дата: 05.07.10 11:42
Оценка:
Здравствуйте, savitar, Вы писали:

S>Правильно я понимаю, что если программа на Python однопоточная и при этом io_service::run() вызван единожды из единственного питоновского потока, то указанных проблем не будет?


Не должно.
Re: Python & boost.asio
От: FR  
Дата: 25.07.10 11:53
Оценка:
Здравствуйте, savitar, Вы писали:

S>Есть желание с помощью boost.python сделать библиотеку из C++-ного кода активно использующего boost.asio в асинхронной манере. Стоит ли так делать, с какими проблемами можно столкнуться. В тестовом варианте работает без проблем.


В питон 3.2 обещают http://docs.python.org/dev/py3k/whatsnew/3.2.html#multi-threading существенные изменения в GIL которые как раз
улучшат работу с асинхронными вещами, подробнее http://www.dabeaz.com/python/NewGIL.pdf
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.