/*
This file is a part of libcds - Concurrent Data Structures library
- (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
+ (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2017
Source code repo: http://github.com/khizmax/libcds/
Download: http://sourceforge.net/projects/libcds/files/
-
+
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef CDSSTRESS_INTRUSIVE_STACK_TYPES_H
T * pop()
{
unique_lock l( m_Lock );
- if ( !m_Impl.empty() ) {
+ if ( !m_Impl.empty()) {
T * v = m_Impl.top();
m_Impl.pop();
return v;
cds::intrusive::treiber_stack::make_traits <
cds::intrusive::opt::hook< base_hook<GC> >
,cds::opt::back_off<
- cds::backoff::exponential<
- cds::backoff::pause,
- cds::backoff::yield
- >
+ cds::backoff::make_exponential_t< cds::backoff::pause,cds::backoff::yield >
>
> ::type
{};
cds::intrusive::opt::hook< base_hook<GC> >
, cds::opt::enable_elimination<true>
,cds::opt::back_off<
- cds::backoff::exponential<
- cds::backoff::pause,
- cds::backoff::yield
- >
+ cds::backoff::make_exponential_t< cds::backoff::pause, cds::backoff::yield >
>
> ::type
{};
#define CDSSTRESS_TreiberStack_HP( test_fixture ) \
CDSSTRESS_Stack_F( test_fixture, Treiber_HP ) \
- CDSSTRESS_Stack_F( test_fixture, Treiber_HP_seqcst ) \
CDSSTRESS_Stack_F( test_fixture, Treiber_HP_pause ) \
- CDSSTRESS_Stack_F( test_fixture, Treiber_HP_exp ) \
- CDSSTRESS_Stack_F( test_fixture, Treiber_HP_stat ) \
+ CDSSTRESS_Stack_F( test_fixture, Treiber_HP_exp )
#define CDSSTRESS_TreiberStack_DHP( test_fixture ) \
CDSSTRESS_Stack_F( test_fixture, Treiber_DHP ) \
CDSSTRESS_Stack_F( test_fixture, Treiber_DHP_pause ) \
- CDSSTRESS_Stack_F( test_fixture, Treiber_DHP_exp ) \
- CDSSTRESS_Stack_F( test_fixture, Treiber_DHP_stat )
+ CDSSTRESS_Stack_F( test_fixture, Treiber_DHP_exp )
#define CDSSTRESS_EliminationStack_HP( test_fixture ) \
CDSSTRESS_Stack_F( test_fixture, Elimination_HP ) \
CDSSTRESS_Stack_F( test_fixture, Elimination_HP_2ms ) \
- CDSSTRESS_Stack_F( test_fixture, Elimination_HP_2ms_stat ) \
CDSSTRESS_Stack_F( test_fixture, Elimination_HP_5ms ) \
- CDSSTRESS_Stack_F( test_fixture, Elimination_HP_5ms_stat ) \
CDSSTRESS_Stack_F( test_fixture, Elimination_HP_10ms ) \
- CDSSTRESS_Stack_F( test_fixture, Elimination_HP_10ms_stat ) \
- CDSSTRESS_Stack_F( test_fixture, Elimination_HP_seqcst ) \
CDSSTRESS_Stack_F( test_fixture, Elimination_HP_pause ) \
CDSSTRESS_Stack_F( test_fixture, Elimination_HP_exp ) \
- CDSSTRESS_Stack_F( test_fixture, Elimination_HP_stat ) \
- CDSSTRESS_Stack_F( test_fixture, Elimination_HP_dyn ) \
- CDSSTRESS_Stack_F( test_fixture, Elimination_HP_dyn_stat ) \
+ CDSSTRESS_Stack_F( test_fixture, Elimination_HP_dyn )
#define CDSSTRESS_EliminationStack_DHP( test_fixture ) \
CDSSTRESS_Stack_F( test_fixture, Elimination_DHP ) \
- CDSSTRESS_Stack_F( test_fixture, Elimination_DHP_seqcst ) \
CDSSTRESS_Stack_F( test_fixture, Elimination_DHP_2ms ) \
- CDSSTRESS_Stack_F( test_fixture, Elimination_DHP_2ms_stat ) \
CDSSTRESS_Stack_F( test_fixture, Elimination_DHP_5ms ) \
- CDSSTRESS_Stack_F( test_fixture, Elimination_DHP_5ms_stat ) \
CDSSTRESS_Stack_F( test_fixture, Elimination_DHP_10ms ) \
- CDSSTRESS_Stack_F( test_fixture, Elimination_DHP_10ms_stat ) \
CDSSTRESS_Stack_F( test_fixture, Elimination_DHP_pause ) \
CDSSTRESS_Stack_F( test_fixture, Elimination_DHP_exp ) \
- CDSSTRESS_Stack_F( test_fixture, Elimination_DHP_stat ) \
- CDSSTRESS_Stack_F( test_fixture, Elimination_DHP_dyn ) \
- CDSSTRESS_Stack_F( test_fixture, Elimination_DHP_dyn_stat )
+ CDSSTRESS_Stack_F( test_fixture, Elimination_DHP_dyn )
#define CDSSTRESS_FCStack_slist( test_fixture ) \
CDSSTRESS_Stack_F( test_fixture, FCStack_slist ) \
- CDSSTRESS_Stack_F( test_fixture, FCStack_slist_stat ) \
CDSSTRESS_Stack_F( test_fixture, FCStack_slist_elimination ) \
- CDSSTRESS_Stack_F( test_fixture, FCStack_slist_elimination_stat ) \
- CDSSTRESS_Stack_F( test_fixture, FCStack_slist_mutex_stat ) \
- CDSSTRESS_Stack_F( test_fixture, FCStack_slist_mutex_elimination ) \
- CDSSTRESS_Stack_F( test_fixture, FCStack_slist_mutex_elimination_stat ) \
+ CDSSTRESS_Stack_F( test_fixture, FCStack_slist_mutex_elimination )
#define CDSSTRESS_FCStack_list( test_fixture ) \
CDSSTRESS_Stack_F( test_fixture, FCStack_list ) \
- CDSSTRESS_Stack_F( test_fixture, FCStack_list_stat ) \
CDSSTRESS_Stack_F( test_fixture, FCStack_list_elimination ) \
- CDSSTRESS_Stack_F( test_fixture, FCStack_list_elimination_stat ) \
- CDSSTRESS_Stack_F( test_fixture, FCStack_list_mutex_stat ) \
- CDSSTRESS_Stack_F( test_fixture, FCStack_list_mutex_elimination ) \
- CDSSTRESS_Stack_F( test_fixture, FCStack_list_mutex_elimination_stat )
+ CDSSTRESS_Stack_F( test_fixture, FCStack_list_mutex_elimination )
#define CDSSTRESS_StdStack( test_fixture ) \
CDSSTRESS_Stack_F( test_fixture, StdStack_Deque_Mutex ) \