Quantitative Analysis.
Trading Platform.
Python for Excel.
Author.
I.Installation.
II.OTS Scheduler.
1.Threading primitives.
A.Encapsulation of primitives.
B.Preventing starvation.
C.Preventing race condition.
a.Guard primitives.
i.ReaderGuard.
ii.WriterGuard.
iii.UpgradeGuard.
iv.TryGuard.
D.Barriers.
2.NonBlockingQueue.
3.ThreadPool.
4.ThreadMaster.
5.Scheduler implementation.
III.OTS Python Object Browser.
Bibliography.
Forum Index Contents Downloads

WriterGuard.

he WriterGuard is used to remove volatileness and simultaneously gain access to the entire interface of the shared object. It performs exclusive locking of the mutex exposed by the shared object.

The following is the public interface of the WriterGuard.

template <class X,class Mutex>

class WriterGuard

{

public:

explicit WriterGuard( volatile X& x );

explicit WriterGuard( volatile X* x );

WriterGuard( volatile X& x, volatile const Mutex& mutex );

WriterGuard( volatile X* x, volatile const Mutex& mutex );

~WriterGuard();

Mutex& mutex() const;

X* operator->();

X& operator*();

X* ptr() const;

};

All constructors throw boost::thread_resource_error. All other functions do not throw.

See the section ( Preventing race condition section) for an example.





Forum Index Contents Download


















Copyright 2009.