Skip to content

Commit

Permalink
detab, fixed compile errors
Browse files Browse the repository at this point in the history
  • Loading branch information
zajo committed Aug 1, 2018
1 parent 5f716b9 commit c8bb888
Show file tree
Hide file tree
Showing 6 changed files with 124 additions and 120 deletions.
1 change: 0 additions & 1 deletion .vscode/tasks.json
Expand Up @@ -23,7 +23,6 @@
"problemMatcher": { "base": "$gcc", "fileLocation": ["relative","${workspaceRoot}/bld/debug"] }
},
{
"group": { "kind": "test", "isDefault": true },
"label": "All unit tests",
"type": "shell",
"command": "cd ${workspaceRoot}/build/test && ../../../../b2 args_connect_test",
Expand Down
29 changes: 17 additions & 12 deletions include/boost/synapse/connection.hpp
Expand Up @@ -73,23 +73,28 @@ boost
{
}
};
template <class T>
typename std::enable_if<std::is_assignable<T&,T const &>::value>::type
set_user_data_( shared_ptr<void> & ud, T const & x )
{
if( deleter_user_data<T> * d=get_deleter<deleter_user_data<T> >(ud) )
d->value = x;
else
ud.reset((void *)0,deleter_user_data<T>(x));
}
template <class T>
typename std::enable_if<!std::is_assignable<T&,T const &>::value>::type
set_user_data_( shared_ptr<void> & ud, T const & x )
{
ud.reset((void *)0,deleter_user_data<T>(x));
}
}
template <class T>
typename std::enable_if<std::is_assignable<T&, const T&>::value>::type
connection::
set_user_data( T const & x )
{
if( synapse_detail::deleter_user_data<T> * d=get_deleter<synapse_detail::deleter_user_data<T> >(user_data_) )
d->value = x;
else
user_data_.reset((void *)0,synapse_detail::deleter_user_data<T>(x));
}
template <class T>
typename std::enable_if<!std::is_assignable<T&, const T&>::value>::type
void
connection::
set_user_data( T const & x )
{
user_data_.reset((void *)0,synapse_detail::deleter_user_data<T>(x));
synapse_detail::set_user_data_(user_data_,x);
}
template <class T>
T *
Expand Down
14 changes: 7 additions & 7 deletions include/boost/synapse/properties.hpp
Expand Up @@ -59,13 +59,13 @@ boost
});
}
}
template <class Signal>
struct
signal_traits<synapse_detail::access_property<Signal> >:
signal_traits<typename synapse_detail::access_property<Signal>::type>
{
static bool const is_thread_local=true;
};
template <class Signal>
struct
signal_traits<synapse_detail::access_property<Signal> >:
signal_traits<typename synapse_detail::access_property<Signal>::type>
{
static bool const is_thread_local=true;
};
template <class Tag,class T>
struct
property
Expand Down
48 changes: 24 additions & 24 deletions include/boost/synapse/signal_traits.hpp
Expand Up @@ -15,30 +15,30 @@ boost
namespace
synapse
{
template <class Signal> struct signal_traits;
template <class R,class... A>
struct
signal_traits<R(*)(A...)>
{
typedef R(*signal_type)(A...);
typedef void signature(A...);
static int const arity=sizeof...(A);
static bool const is_thread_local=false;
};
template <class Signal>
struct
signal_traits<meta::connected<Signal> >:
signal_traits<typename meta::connected<Signal>::type>
{
static bool const is_thread_local=true;
};
template <class Signal>
struct
signal_traits<meta::blocked<Signal> >:
signal_traits<typename meta::blocked<Signal>::type>
{
static bool const is_thread_local=true;
};
template <class Signal> struct signal_traits;
template <class R,class... A>
struct
signal_traits<R(*)(A...)>
{
typedef R(*signal_type)(A...);
typedef void signature(A...);
static int const arity=sizeof...(A);
static bool const is_thread_local=false;
};
template <class Signal>
struct
signal_traits<meta::connected<Signal> >:
signal_traits<typename meta::connected<Signal>::type>
{
static bool const is_thread_local=true;
};
template <class Signal>
struct
signal_traits<meta::blocked<Signal> >:
signal_traits<typename meta::blocked<Signal>::type>
{
static bool const is_thread_local=true;
};
}
}

Expand Down
84 changes: 42 additions & 42 deletions include/boost/synapse/synapse_detail/common.hpp
Expand Up @@ -63,10 +63,10 @@ boost
std::atomic<interthread_interface *> * const interthread_;
thread_local_signal_data():
cleanup_(&cleanup_stub),
cl_count_(0),
cl_count_(0),
emit_(&emit_stub),
emitter_blocked_(&emitter_blocked_stub),
get_cll_(0),
get_cll_(0),
interthread_(0)
{
}
Expand All @@ -88,7 +88,7 @@ boost
int
emit_stub( thread_local_signal_data const & tlsd, void const * e, args_binder_base const * args )
{
if( tlsd.cl_count_ && *tlsd.cl_count_ )
if( tlsd.cl_count_ && *tlsd.cl_count_ )
if( interthread_interface * interthread=tlsd.interthread_->load() )
return interthread->emit(tlsd,e,args);
return 0;
Expand Down Expand Up @@ -145,49 +145,49 @@ boost
main_tlsd->keep_meta_blocked_tlsd_afloat_ = meta;
}
};
template <class Signal,bool SignalIsThreadLocal=signal_traits<Signal>::is_thread_local>
struct thread_local_signal_data_;
template <class Signal>
struct
thread_local_signal_data_<Signal,false>
{
static
shared_ptr<thread_local_signal_data> const &
get( bool allocate )
{
BOOST_SYNAPSE_STATIC(std::atomic<int>,count);
BOOST_SYNAPSE_STATIC(std::atomic<interthread_interface *>,interthread);
BOOST_SYNAPSE_THREAD_LOCAL(shared_ptr<thread_local_signal_data>,obj);
if( !obj && (allocate || interthread.load()) )
{
obj=synapse::make_shared<thread_local_signal_data>(&get_connection_list_list<Signal>,count,interthread);
register_with_non_meta<Signal>::keep_afloat(obj);
}
return obj;
}
};
template <class Signal>
struct
thread_local_signal_data_<Signal,true>
{
static
shared_ptr<thread_local_signal_data> const &
get( bool allocate )
{
BOOST_SYNAPSE_THREAD_LOCAL(shared_ptr<thread_local_signal_data>,obj);
if( !obj && allocate )
{
obj=synapse::make_shared<thread_local_signal_data>();
register_with_non_meta<Signal>::keep_afloat(obj);
}
return obj;
}
};
template <class Signal,bool SignalIsThreadLocal=signal_traits<Signal>::is_thread_local>
struct thread_local_signal_data_;
template <class Signal>
struct
thread_local_signal_data_<Signal,false>
{
static
shared_ptr<thread_local_signal_data> const &
get( bool allocate )
{
BOOST_SYNAPSE_STATIC(std::atomic<int>,count);
BOOST_SYNAPSE_STATIC(std::atomic<interthread_interface *>,interthread);
BOOST_SYNAPSE_THREAD_LOCAL(shared_ptr<thread_local_signal_data>,obj);
if( !obj && (allocate || interthread.load()) )
{
obj=synapse::make_shared<thread_local_signal_data>(&get_connection_list_list<Signal>,count,interthread);
register_with_non_meta<Signal>::keep_afloat(obj);
}
return obj;
}
};
template <class Signal>
struct
thread_local_signal_data_<Signal,true>
{
static
shared_ptr<thread_local_signal_data> const &
get( bool allocate )
{
BOOST_SYNAPSE_THREAD_LOCAL(shared_ptr<thread_local_signal_data>,obj);
if( !obj && allocate )
{
obj=synapse::make_shared<thread_local_signal_data>();
register_with_non_meta<Signal>::keep_afloat(obj);
}
return obj;
}
};
template <class Signal>
shared_ptr<thread_local_signal_data> const &
get_thread_local_signal_data( bool allocate )
{
return thread_local_signal_data_<Signal>::get(allocate);
return thread_local_signal_data_<Signal>::get(allocate);
}
}
}
Expand Down
68 changes: 34 additions & 34 deletions src/connect.cpp
Expand Up @@ -119,21 +119,21 @@ boost
BOOST_SYNAPSE_ASSERT(!is_free());
BOOST_SYNAPSE_ASSERT(e!=0);
if( ep_==e )
if( auto e_lk = e_.maybe_lock<void const>() )
if( auto r_lk=r_.maybe_lock<void const>() )
if( translated_ )
if( args )
return args->call_translated(fn_.get());
else
return (*static_cast<function<int()> const *>(fn_.get()))();
else
{
if( args )
args->call(fn_.get());
else
(*static_cast<function<void()> const *>(fn_.get()))();
return 1;
}
if( auto e_lk = e_.maybe_lock<void const>() )
if( auto r_lk=r_.maybe_lock<void const>() )
if( translated_ )
if( args )
return args->call_translated(fn_.get());
else
return (*static_cast<function<int()> const *>(fn_.get()))();
else
{
if( args )
args->call(fn_.get());
else
(*static_cast<function<void()> const *>(fn_.get()))();
return 1;
}
return 0;
};
};
Expand Down Expand Up @@ -197,9 +197,9 @@ boost
BOOST_SYNAPSE_ASSERT(e!=0);
BOOST_SYNAPSE_ASSERT(!tlsd.cl_.expired());
int n1=0;
if( tlsd.interthread_ )
if( interthread_interface * interthread=tlsd.interthread_->load() )
n1=interthread->emit(tlsd,e,args);
if( tlsd.interthread_ )
if( interthread_interface * interthread=tlsd.interthread_->load() )
n1=interthread->emit(tlsd,e,args);
if( !tlsd.emitter_blocked_(tlsd,e) )
if( shared_ptr<thread_local_signal_data::connection_list> cl=tlsd.cl_.lock() )
{
Expand All @@ -225,11 +225,11 @@ boost
if( shared_ptr<thread_local_signal_data> tlsd=tlsd_.lock() )
{
BOOST_SYNAPSE_ASSERT(tlsd);
if( tlsd->cl_count_ )
{
int const n=--(*tlsd->cl_count_);
BOOST_SYNAPSE_ASSERT(n>=0);
}
if( tlsd->cl_count_ )
{
int const n=--(*tlsd->cl_count_);
BOOST_SYNAPSE_ASSERT(n>=0);
}
tlsd->cl_.reset();
tlsd->emit_=&thread_local_signal_data::emit_stub;
tlsd->cleanup_=&thread_local_signal_data::cleanup_stub;
Expand All @@ -254,11 +254,11 @@ boost
tlsd->emit_=&emit_impl;
tlsd->cleanup_=&cleanup_impl;
check_invariants();
if( tlsd->cl_count_ )
{
int const n=++(*tlsd->cl_count_);
BOOST_SYNAPSE_ASSERT(n>0);
}
if( tlsd->cl_count_ )
{
int const n=++(*tlsd->cl_count_);
BOOST_SYNAPSE_ASSERT(n>0);
}
}
~connection_list()
{
Expand Down Expand Up @@ -419,12 +419,12 @@ boost
{
make_shared<thread_local_signal_data::connection_list>(tlsd,emit_meta_connected).swap(cl);
tlsd->cl_=cl;
if( tlsd->interthread_ )
if( interthread_interface * interthread=get_interthread_api() )
{
tlsd->interthread_->store(interthread);
interthread->notify_connection_list_created(tlsd);
}
if( tlsd->interthread_ )
if( interthread_interface * interthread=get_interthread_api() )
{
tlsd->interthread_->store(interthread);
interthread->notify_connection_list_created(tlsd);
}
}
return cl;
}
Expand Down

0 comments on commit c8bb888

Please sign in to comment.