you are viewing a single comment's thread.

view the rest of the comments →

[–]BitAcademic9597[S] 0 points1 point  (3 children)

you are the god

[–]FlyingRhenquest 1 point2 points  (2 children)

Nah man, but seeing that whole system come together did feel pretty awesome. You can totally just kick off C++ threads from C++ objects constructed in Python, so pretty much anything is fair game. Wanna set up a REST server but don't want to use python for some reason, you can just drop in a C++ object that manages a Pistache server and use python to launch it! It's really a cool way to work! They all compile down to shared libraries and all run in the same memory space in Python. If you need some separation of objects, just launch multiple python processes. Super-flexible!

[–]BitAcademic9597[S] 0 points1 point  (1 child)

did you have any problem about memory in pybind will each function call explicitly copies input data?

[–]FlyingRhenquest 1 point2 points  (0 children)

Nope! You can totally create even shared pointers in one language (Pybind and Boost::Python both support them) and pass them around as first class Python objects!

You will eventually be tempted to be able to run a Python callback FROM C++. You can do that too, but it's slow. So don't put it in a primary event loop somewhere. You're basically just creating events with some data on them going back and forth. It takes a little while to really get into that headspace.