Converting existing module/objects to threads

Hendrik van Rooyen mail at microcorp.co.za
Fri Oct 20 02:42:47 EDT 2006


<jdlists at gmail.com> wrote:
> I have inheirted some existing code, that i will explain in a moment,
> have needed to extend and ultimately should be able to run in threads.
> I've done a bunch of work with python but very little with threads and
> am looking for some pointers on how to implement, and if the lower
> level modules/objects need to be rewritten to use threading.local for
> all local variables.
>
> I have a module that communicates with a hardware device, which reads
> data off of sensors, that can only talk with one controller at a time.
> The controller (my module) needs to (in its simplest form) init,
> configure the device, request data, and write out xml, sleep, repeat.
>
> The new request is that the device needs to be queried until a
> condition is true, and then start requesting data.  So an instance of a
> controller needs to be deadicated to a hardware device forever, or
> until the program ends....which ever comes first.
>
> This currently works in a non-threaded version, but only for one device
> at a time, there is a need to create a single windows(yeach) service
> that talks to many of these devices at once.  I don't need worker
> threads that handle seperate portions of the entire job, i need a
> single application to spawn multiple processes to run through the
> entire communication from configure to report, sleep until the next
> interval time and run again.  The communication could last from 1
> minute to 10 minutes before it ends.

8<------------------------------------------------------------------------------

not sure if I understand this correctly - but I would in this position spawn new
threads, and use a global list of queues to interface between the new threads
and the old comms module, still talking to one device at a time, but now time
sliced. - in the comms module:

for q in list_of_queues:
    see if anything to ask:
        continue if not
    ask it and put answer on reply queue

but then I am a Philistine coder, interested only in getting the job done...

- Hendrik





More information about the Python-list mailing list