delay()

Updated: April 19, 2023

Suspend a calling thread for a given length of time

Synopsis:

#include <unistd.h>

unsigned int delay( unsigned int duration );

Arguments:

duration
The number of milliseconds for which to suspend the calling thread from execution.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The delay() function suspends the calling thread for duration milliseconds.

Note: The suspension time may be greater than the requested amount, due to the nature of time measurement (see the Understanding the Microkernel's Concept of Time chapter of the QNX Neutrino Programmer's Guide), or due to the scheduling of other, higher-priority threads by the system.

Returns:

0 for success, or the number of unslept milliseconds if interrupted by a signal.

Examples:

#include <unistd.h>
#include <stdlib.h>

void play_sound( void )
{
    …
}

void stop_sound( void )
{
    …
}

int main( void )
{
    play_sound();
    delay( 500 );  /* delay for 1/2 second */
    stop_sound();

    return EXIT_SUCCESS;
}

Classification:

QNX Neutrino

Safety:  
Cancellation point Yes
Interrupt handler No
Signal handler Yes
Thread Yes