BewareMyPower commented on issue #85:
URL: 
https://github.com/apache/pulsar-client-python/issues/85#issuecomment-1571970049

   @zbentley Your points generally make sense to me. I have some more 
additional points.
   
   1. Yeah it's hard for Python users to test a wheel for latest master. Though 
we can trigger the GitHub action to generate wheels by pushing a tag in your 
own fork, I must admit that the workflows are not optimized. We have to wait 
until all workflows are done, which could take 3+ hours, while a single 
workflow only takes 10+ minutes. (It can be reduced if we have a pre-built 
image with all dependencies built)
   2. These issues are nearly all related to the GIL, which must be taken very 
carefully when developing the C extension for Python. pybind11 simplifies the 
APIs but we still need to write GIL-safe C++ code.
   3. The main issue is related to the multi-processes. Because of the 
implictly called destructors, the C++ classes are not guaranteed to be safely 
shared among various processes like the trivial C structs. Other issues are 
still related to GIL.
   
   I think point 2 and 3 are still within the scope of the development. Though 
it makes it hard for Python users to debug issues.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to