[Previous] [Contents] [Next]

resmgr_context_alloc()

Allocate a context

Synopsis:

#include <sys/dispatch.h>

resmgr_context_t * resmgr_context_alloc
                 ( dispatch_t * dpp );

Library:

libc

Description:

The resmgr_context_alloc() function returns a context that's used for blocking and receiving messages. The function is passed in the dispatch handle dpp from dispatch_create().


Note: This function is a special case of dispatch_context_alloc() and should be used only when writing a simple resource manager.

Returns:

A context pointer, or NULL if an error occurs (errno is set).

Errors:

EINVAL
No resource manager events were attached to dpp.
ENOMEM
Insufficient memory to allocate the context ctp.

Examples:

#include <sys/dispatch.h>
#include <stdio.h>
#include <stdlib.h>

int main( int argc, char **argv ) {
   dispatch_t          *dpp;
   resmgr_context_t    *ctp;

   if ( (dpp = dispatch_create()) == NULL ) {
      fprintf( stderr, "%s: Unable to allocate \
               dispatch handle.\n",argv[0] );
      return EXIT_FAILURE;
   }

   ...

   if ( ( ctp = resmgr_context_alloc ( dpp )) == NULL ) {
      fprintf( stderr, "Context wasn't allocated.\n" );
      return EXIT_FAILURE;
   }
}

For examples using the dispatch interface, see dispatch_create(), message_attach(), resmgr_attach(), and thread_pool_create().

Classification:

QNX 6

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

See also:

dispatch_context_alloc(), dispatch_create(), resmgr_attach(), resmgr_context_free()

"Components of a Resource Manager" section of the Writing a Resource Manager chapter in the Programmer's Guide.


[Previous] [Contents] [Next]