srv_event_deferred

Description

Add an event request to the event queue of a thread as the result of an asynchronous event.

Syntax

CS_INT srv_event_deferred(spp, event, datap)
SRV_PROC    *spp;
CS_INT           event;
CS_VOID       *datap;

Parameters

spp

A pointer to an internal thread control structure.

event

The event to add to the thread’s event queue.

datap

A pointer (CS_VOID) to data supplied by the Open Server programmer. An application can retrieve the data by calling srv_thread_props with property set to SRV_T_EVENTDATA from within the event handler.

Returns

The requested event. If there was an error, -1 is returned.

Table 3-45: Return values (srv_event_deferred)

Returns

To indicate

The token for the requested event.

Open Server added the new event.

-1

The routine failed.

Examples

Example 1

#include   <ospublic.h>
/*
 ** Local Prototype
 */
CS_RETCODE   ex_srv_event_deferred PROTOTYPE((
SRV_PROC     *spp,
CS_INT       event,
CS_VOID      *datap
));
/* 
 ** EX_SRV_EVENT_DEFERRED
**    Example routine to queue up a deferred event using
 **    srv_event_deferred. A deferred event request will 
 **    typically be made from within interrupt-level code.
** Arguments:
**    spp       A pointer to the internal thread control 
 **              structure.
**    event     The event to add to the thread’s queue.
**    datap     A pointer to data to attach to the event.
** Returns:
**    CS_SUCCEED    The event was sucecssfully queued.
**    CS_FAIL       An error was detected.
 */
CS_RETCODE          ex_srv_event_deferred(spp, event, datap)
SRV_PROC            *spp;
CS_INT              event;
CS_VOID             *datap;
{
      /*
      ** Add a deferred event to the event queue.
      */
     if (srv_event_deferred(spp, event, datap) == -1)
     {
            return(CS_FAIL);
      }
     return(CS_SUCCEED);
}

Usage

See also

srv_define_event, srv_event, srv_handle, srv_thread_props, “Events”