As title say, does Python cStringIO protect their internal structures for multithreading use?
Thank you.
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
Take a look at an excellent work on explaining GIL, then note that cStringIO is written purely in C, and its calls don’t release GIL.
It means that the running thread won’t voluntarily switch during read()/write() (with current virtual machine implementation). (The OS will preempt the thread, however other Python threads won’t be able to acquire GIL.)
Taking a look at the source: Python-2.7.1/Modules/cStringIO.c there is no mention about internals protection. When in doubt, look at source 🙂