操作
バグ #3650
完了実行周期を0に設定してもエラーコードを返さない問題
開始日:
2016/10/05
期日:
進捗率:
100%
予定工数:
説明
setRate関数の引数に0を指定した場合にはRTC::BAD_PARAMETERを返すのが本来の仕様だが、ExecutionContextProfileクラスのsetRate関数内でrate < 0.0と判定しているため0の時にRTC::RTC_OKを返してしまう問題が発生する。
またsetPeriod関数内でも同様の判定をしているため修正する。
RTC::ReturnCode_t ExecutionContextProfile::setRate(double rate)
{
RTC_TRACE(("setRate(%f)", rate));
if (rate < 0.0) { return RTC::BAD_PARAMETER; }
Guard guard(m_profileMutex);
m_profile.rate = rate;
m_period = coil::TimeValue(1.0/rate);
return RTC::RTC_OK;
}
RTC::ReturnCode_t ExecutionContextProfile::setPeriod(coil::TimeValue period)
{
RTC_TRACE(("setPeriod(%f [sec])", (double)period));
if ((double)period < 0.0) { return RTC::BAD_PARAMETER; }
Guard guard(m_profileMutex);
m_profile.rate = 1.0 / (double)period;
m_period = period;
return RTC::RTC_OK;
}
操作