Package PyFoam :: Package ThirdParty :: Package Gnuplot :: Module PlotItems :: Class _FIFOWriter
[hide private]
[frames] | no frames]

Class _FIFOWriter

source code


Create a FIFO (named pipe), write to it, then delete it.

The writing takes place in a separate thread so that the main thread is not blocked. The idea is that once the writing is finished we know that gnuplot is done with the data that were in the file so we can delete the file. This technique removes the ambiguity about when the temporary files should be deleted.

Since the tempfile module does not provide an easy, secure way to create a FIFO without race conditions, we instead create a temporary directory using mkdtemp() then create the FIFO within that directory. When the writer thread has written the full information to the FIFO, it deletes both the FIFO and the temporary directory that contained it.

Instance Methods [hide private]
 
__init__(self, content, mode='w')
This constructor should always be called with keyword arguments.
source code
 
run(self)
Method representing the thread's activity.
source code

Inherited from threading.Thread: __repr__, getName, isAlive, isDaemon, is_alive, join, setDaemon, setName, start

Inherited from threading.Thread (private): _reset_internal_locks, _set_daemon, _set_ident

Inherited from threading._Verbose (private): _note

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __setattr__, __sizeof__, __str__, __subclasshook__

Properties [hide private]

Inherited from threading.Thread: daemon, ident, name

Inherited from threading.Thread (private): _block

Inherited from object: __class__

Method Details [hide private]

__init__(self, content, mode='w')
(Constructor)

source code 

This constructor should always be called with keyword arguments. Arguments are:

*group* should be None; reserved for future extension when a ThreadGroup class is implemented.

*target* is the callable object to be invoked by the run() method. Defaults to None, meaning nothing is called.

*name* is the thread name. By default, a unique name is constructed of the form "Thread-N" where N is a small decimal number.

*args* is the argument tuple for the target invocation. Defaults to ().

*kwargs* is a dictionary of keyword arguments for the target invocation. Defaults to {}.

If a subclass overrides the constructor, it must make sure to invoke the base class constructor (Thread.__init__()) before doing anything else to the thread.

Overrides: object.__init__
(inherited documentation)

run(self)

source code 

Method representing the thread's activity.

You may override this method in a subclass. The standard run() method invokes the callable object passed to the object's constructor as the target argument, if any, with sequential and keyword arguments taken from the args and kwargs arguments, respectively.

Overrides: threading.Thread.run
(inherited documentation)