循環バッファーは、パイプラインのフィルター間で渡される項目の割り当てと解放のオーバーヘッドを最小限にするために使用されることがあります。項目を作成する最初のフィルターと項目を消費する最後のフィルターがどちらも serial_in_order の場合、項目はサイズ ntoken の循環バッファーを使用して割り当ておよび解放できます (ntoken は parallel_pipeline の第 1 引数)。この条件の下では、項目が使用されているかどうかを確認する必要はありません。
この処理で使用される項目は最大 ntoken 項目で、各項目は割り当てられた順序で解放されます。したがって、循環バッファーが項目を再度割り当てるために巡回する時点で、その項目はパイプラインの前の処理から解放されています。つまり、項目が使用されているかどうかを確認する必要はありません。最初と最後のフィルターが serial_in_order でない 場合、バッファーは割り当てられた順序と同じ順序でリタイアしないため、どのバッファーが使用中か追跡する必要があります。