threads and socket question
Gonçalo Rodrigues
op73418 at mail.telepac.pt
Tue Sep 2 09:59:55 EDT 2003
More information about the Python-list mailing list
Tue Sep 2 09:59:55 EDT 2003
- Previous message (by thread): artificial intelligence
- Next message (by thread): Bayesian kids content filtering in Python?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Mon, 01 Sep 2003 01:34:32 GMT, "Daniel T." <postmaster at earthlink.net> wrote: >Gon?alo Rodrigues <op73418 at mail.telepac.pt> wrote: > >> My setup is the following: I have socket s from which I want to read >> and write. So I made the following set up: >> >> There is a thread whose only job is to read. Any data read (from recv >> call) is just passed to (some) Queue. This thread is "owned" by a >> second thread waiting on a Queue for write requests. The thread just >> pops these from the Queue, and calls the send method from the socket. >> This thread also takes care of closing the socket or (possibly) >> handling any exceptions raised due to socket operation. >> >> So my question is: since I have two threads sharing the same socket, >> even though one is only reading and the other does everything else, do >> I have to watch out for any "concurrency" issues? >> >> P.S: This is for learning experience. So it's of no use telling me >> that I should learn Twisted :-) I may (eventually) get there, but at >> the moment I feel more omfortable with working with plain blocking >> sockets. > >The first problem I can think of is the one that stopped me. Note the >code below... You can't close a blocked socket in python even from a >separate thread. > Thanks for this piece of info. My experiences with my setup confirm it. I really want to keep the socket-closing in the write thread so my problem is reduced to be able to order to read thread to die. What I chose to do is to have it periodically check some exit flag to know when to exit. I believe this can be done by calling select with a timeout before the recv blocking call. Back to the docs and Python-experimenting-mode. With my best regards, G. Rodrigues
- Previous message (by thread): artificial intelligence
- Next message (by thread): Bayesian kids content filtering in Python?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list