#include <XrdEcUtilities.hh>
template<typename Element>
struct XrdEc::sync_queue< Element >
Definition at line 168 of file XrdEcUtilities.hh.
◆ XrdEc::sync_queue::wait_interrupted
struct XrdEc::sync_queue::wait_interrupted |
template<typename Element>
struct XrdEc::sync_queue< Element >::wait_interrupted
Definition at line 173 of file XrdEcUtilities.hh.
◆ sync_queue()
template<typename Element >
◆ dequeue() [1/2]
template<typename Element >
Definition at line 196 of file XrdEcUtilities.hh.
197 {
198 std::unique_lock<std::mutex> lck( mtx );
199 while( elements.empty() )
200 {
201 cv.wait( lck );
202 if( interrupted ) throw wait_interrupted();
203 }
204 Element element = std::move( elements.front() );
205 elements.pop();
206 return element;
207 }
◆ dequeue() [2/2]
template<typename Element >
Definition at line 213 of file XrdEcUtilities.hh.
214 {
215 std::unique_lock<std::mutex> lck( mtx );
216 if( elements.empty() ) return false;
217 e = std::move( elements.front() );
218 elements.pop();
219 return true;
220 }
◆ empty()
template<typename Element >
Definition at line 225 of file XrdEcUtilities.hh.
226 {
227 std::unique_lock<std::mutex> lck( mtx );
228 return elements.empty();
229 }
◆ enqueue()
template<typename Element >
Definition at line 185 of file XrdEcUtilities.hh.
186 {
187 std::unique_lock<std::mutex> lck( mtx );
188 elements.push( std::move( element ) );
189 cv.notify_all();
190 }
◆ interrupt()
template<typename Element >
The documentation for this struct was generated from the following file: