# OS_SetPrintBlockingMode

## Syntax

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

## Arguments

sw | The blocking mode switch. When `TRUE`, blocking mode is in effect. When `FALSE`, the mode is non-blocking.

## Return Values

None.

## Description

Sets the blocking mode for IS-TWL-DEBUGGER or IS-NITRO-DEBUGGER debugger output.

When using the blocking mode, characters output by the `OS_Printf` function and the like are accurately output. However, this can sometimes result in longer processing times for the debugger output. When using non-blocking mode, real-time processing takes priority, so calling the output function at high speed or not loading output strings on the PC side for long periods of time can cause some strings not to be output. Ordinarily, we assume you would set for non-blocking mode and, when necessary to display, set for blocking mode.

The function used to get the current settings is `OS_GetPrintBlockingMode`.

This function is used for debugging. This function does nothing in the FINALROM library.

One possible use for this function is to output the total when using the profile feature to calculate the function cost. You would use it like this:

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

In other words, you can use the function to temporarily change settings.

Blocking mode switching is sometimes not implemented, depending on the version of IS-TWL-DEBUGGER and IS-NITRO-DEBUGGER. Check the debugging software update history. You can even call this function when the feature is unsupported. If the feature is unsupported, the `OS_GetPrintBlockingMode` function will do nothing.

## See Also

`OS_GetPrintBlockingMode
`

## Revision History

2009/04/21 Revised the text regarding function operation in FINALROM versions. Corrected the example.
2009/04/02 Initial version.

CONFIDENTIAL