Can PySerial's write method be called by multiple threads?

Joel Koltner zapwireDASHgroups at yahoo.com
Wed Aug 25 16:24:52 EDT 2010


Hi John,

"John Nagle" <nagle at animats.com> wrote in message 
news:4c75768a$0$1608$742ec2ed at news.sonic.net...
>     You don't need a queue, though; just use your own "write" function
> with a lock.

Hmm... that would certainly work.  I suppose it's even more efficient than a 
queue in that the first thing the queue is going to do is to acquire a lock; 
thanks for the idea!

>    def atomicwrite(fd, data) :
>        with lok :
>            fd.write(data)

Cool, I didn't know that threading.Lock() supported "with!" -- Just the other 
day I was contemplating how one might go about duplicating the pattern in C++ 
where you do something like this:

    {
        Lock lok; // Constructor acquires lock, will be held until destructor 
called (i.e., while lok remains in scope)
        DoSomething();
    } // Lock released

...clearly "with" does the job here.

---Joel




More information about the Python-list mailing list