Can PySerial's write method be called by multiple threads?
zapwireDASHgroups at yahoo.com
Wed Aug 25 21:02:27 CEST 2010
"Thomas Jollans" <thomas at jollybox.de> wrote in message
news:mailman.36.1282762569.29448.python-list at python.org...
> I expect that it gives away the GIL to call the resident write() function,
> allow other threads to run while it's sitting there, blocking. I haven't
> looked at the code, so maybe it doesn't hand over the GIL, but if it
> I'd consider that a bug rather than a feature: the GIL shouldn't be abused
> some kind of local mutex, and only gets in the way anyway.
Ah, I expect you're correct. I'm still largely a Python newbie, and only know
enough about things like the GIL to get myself into trouble.
> Speaking of the GIL, you shouldn't rely on it being there. Ever. It's a
> necessary evil, or it appears to be necessary. but nobody likes it and if
> somebody finds a good way to kick it out then that will happen.
OK, but presumably I can't know whether or not someone who wrote a library
like pySerial relied on it or not. Although I suppose this is really a
documentation bug -- pySerial's documentation doesn't talk about
multi-threaded access directly, although their "minicom" example does
demonstrate it in action.
Thanks for the help,
More information about the Python-list