3 #ifndef __ZMQ_YPIPE_HPP_INCLUDED__
4 #define __ZMQ_YPIPE_HPP_INCLUDED__
19 template <
typename T,
int N>
class ypipe_t
ZMQ_FINAL :
public ypipe_base_t<T>
30 _r = _w = _f = &_queue.back ();
31 _c.set (&_queue.back ());
38 #ifdef ZMQ_HAVE_OPENVMS
40 #pragma message disable(UNINIT)
58 #ifdef ZMQ_HAVE_OPENVMS
59 #pragma message restore
66 if (_f == &_queue.back ())
83 if (_c.cas (_w, _f) != _w) {
104 if (&_queue.front () != _r && _r)
111 _r = _c.cas (&_queue.front (),
NULL);
117 if (&_queue.front () == _r || !_r)
134 *
value_ = _queue.front ();
144 const bool rc = check_read ();
147 return (*fn_) (_queue.front ());