# OS_SetPrintBlockingMode

## 構文

  `#include <nitro/os.h>`
  `void OS_SetPrintBlockingMode( BOOL sw );`

## 引数

sw | ブロッキングモードのスイッチ TRUE ならばブロッキングモード、FALSE ならば非ブロッキングモード

## 返り値

なし。

## 説明

IS-TWL-DEBUGGER または IS-NITRO-DEBUGGER のデバッグ出力のブロッキングモードを設定します。

ブロッキングモードの場合、`OS_Printf()` 等で出力した文字を確実に出力します。ただしその結果としてデバッグ出力の処理で時間が掛かる可能性はあります。非ブロッキングモードの場合、処理のリアルタイム性を優先するために高速に出力関数を呼び出したり、PC側で出力文字列を長時間取り込まないと一部の文字列が出力されないという場合もあります。通常は非ブロッキングモードにしておき、必要なときにブロッキングモードにして表示する用途が想定されます。

現在の設定を取得する関数は、`OS_GetPrintBlockingMode()` です。

これはデバッグ用の関数です。最終ROM版(FINALROM)ライブラリでは何も行いません。

この関数の用途としては、例えば、関数コストを計算するプロファイル機能で集計結果を出力する場合に、

> `BOOL prev = OS_GetPrintBlockingMode();
> OS_SetPrintBlockingMode( TRUE );
> OS_DumpStatistics(buf);
> OS_SetPrintBlockingMode( prev );`

のように、一時的に設定を変更するために使用します。

ブロッキングモードの切り替え機能は、IS-TWL-DEBUGGER や IS-NITRO-DEBUGGER のバージョンによって実装されていない場合もあります。デバッガソフトウェアの更新履歴などでご確認ください。非対応の場合でも関数を呼び出すことは可能です。非対応の場合は `OS_GetPrintBlockingMode()` は何も行いません。

## 参照

`OS_GetPrintBlockingMode
`

## 履歴

2009/04/21 FINALROM時の動作について修正。例を修正。
2009/04/02 初版