私はスレッディングを強化するのは初めてです(おそらく私を台無しにしたWin32スレッディングから来ました)。
そのため、作業ループがまだ進行していることを確認するための、より「RAII」な方法を作成しようとしています。だから私はこの単純な関数を作りました:
template<typenameT>
T safe_read(const T& t,boost::mutex& mutex)
{
boost::interprocess::scoped_lock lock(mutex);
return t;
}
いつも使っているようなので、これに相当するブーストはありますか?また、これは許容できる呼び出しですか?
アイデアは、より奇妙なロックを使用せずにこれを安全に実行できるようにすることです。
while(!safe_read(this->is_killing_,this->is_killing_mutex_))
{
DoWork();
}