Actions
バグ #4392
closedRingBufferのバッファフル時に待機する処理
Start date:
12/12/2017
Due date:
% Done:
100%
Estimated time:
Description
threading.Conditionのwait関数はPython 3.2以前と以降で動作が違う。
Python 3.2以降ではタイムアウトした場合にFalseを返し、それ以外ではTrueを返すが、Python 2.7等では常にNoneを返す。
このためPython 2系と3系で場合分けをする。
Updated by n-miyamoto over 6 years ago
- Status changed from 新規 to 解決
- Target version set to RELENG_1_2
- % Done changed from 0 to 100
以下のようにPython3の場合はwait関数の戻り値で判定し、Python2の場合はfull関数でバッファフルかを確認するように変更した。
if sec != 0 or nsec != 0:
wait_time = sec + (nsec/1000000000.0)
else:
wait_time = None
ret = self._full_cond.wait(wait_time)
if sys.version_info[0] == 3:
if not ret:
self._full_cond.release()
return OpenRTM_aist.BufferStatus.TIMEOUT
else:
if self.full():
self._full_cond.release()
return OpenRTM_aist.BufferStatus.TIMEOUT
Actions