Caution: This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs.

delay()

Suspends 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 Tick, Tock: Understanding the Neutrino 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.

Errors:

If an error occurs, errno is set to:

EAGAIN
No timer resources were available to satisfy the request.

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 4

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

See also:

alarm(), errno, nanosleep(), nap(), napms(), sleep(), usleep()

Clocks, Timers, and Getting a Kick Every So Often chapter of Getting Started with QNX Neutrino

Tick, Tock: Understanding the Neutrino Microkernel's Concept of Time chapter of the QNX Neutrino Programmer's Guide