⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prmwait.h

📁 Netscape NSPR库源码
💻 H
📖 第 1 页 / 共 2 页
字号:
**  RETURN**      PRReciveWait**                  When the caller is resumed it is either returned a**                  valid pointer to a previously added receive wait or**                  a NULL. If the latter, the function has terminated**                  for a reason that can be determined by calling**                  PR_GetError().**                  If a valid pointer is returned, the reference is to the**                  file descriptor contained in the receive wait object.**                  The outcome of the wait operation may still fail, and**                  if it has, that fact will be noted in the object's**                  outcome field. Details can be retrieved from PR_GetError().****  ERRORS**      PR_INVALID_ARGUMENT_ERROR**                  The 'group' is not known by the runtime.**      PR_PENDING_INTERRUPT_ERROR                    The thread was interrupted.**      PR_INVALID_STATE_ERROR**                  The group is being destroyed.*/NSPR_API(PRRecvWait*) PR_WaitRecvReady(PRWaitGroup *group);/*** FUNCTION:    PR_CancelWaitFileDesc** DESCRIPTION:**      PR_CancelWaitFileDesc is provided as a means for cancelling operations**      on objects previously submitted by use of PR_AddWaitFileDesc(). If**      the runtime knows of the object, it will be marked as having failed**      because it was interrupted (similar to PR_Interrupt()). The first**      available thread waiting on the group will be made to return the**      PRRecvWait object with the outcome noted.****  INPUTS**      group       The wait group under which the wait receive object was**                  added.**      desc        A pointer to the wait receive object that is to be**                  cancelled.**  RETURN**      PRStatus    If the wait receive object was located and associated**                  with the specified wait group, the status returned will**                  be PR_SUCCESS. There is still a race condition that would**                  permit the offected object to complete normally, but it**                  is assured that it will complete in the near future.**                  If the receive object or wait group are invalid, the**                  function will return with a status of PR_FAILURE.****  ERRORS**      PR_INVALID_ARGUMENT_ERROR**                  The 'group' argument is not recognized as a valid group.**      PR_COLLECTION_EMPTY_ERROR**                  There are no more receive wait objects in the group's**                  collection.**      PR_INVALID_STATE_ERROR**                  The group is being destroyed.*/NSPR_API(PRStatus) PR_CancelWaitFileDesc(PRWaitGroup *group, PRRecvWait *desc);/*** FUNCTION:    PR_CancelWaitGroup** DESCRIPTION:**      PR_CancelWaitGroup is provided as a means for cancelling operations**      on objects previously submitted by use of PR_AddWaitFileDesc(). Each**      successive call will return a pointer to a PRRecvWait object that**      was previously registered via PR_AddWaitFileDesc(). If no wait**      objects are associated with the wait group, a NULL will be returned.**      This function should be called in a loop until a NULL is returned**      to reclaim all the wait objects prior to calling PR_DestroyWaitGroup().****  INPUTS**      group       The wait group under which the wait receive object was**                  added.**  RETURN**      PRRecvWait* If the wait group is valid and at least one receive wait**                  object is present in the group, that object will be**                  marked as PR_MW_INTERRUPT'd and removed from the group's**                  queues. Otherwise a NULL will be returned and the reason**                  for the NULL may be retrieved by calling PR_GetError().****  ERRORS**      PR_INVALID_ARGUMENT_ERROR**      PR_GROUP_EMPTY_ERROR*/NSPR_API(PRRecvWait*) PR_CancelWaitGroup(PRWaitGroup *group);/*** FUNCTION:    PR_CreateWaitGroup** DESCRIPTION:**      A wait group is an opaque object that a client may create in order**      to semantically group various wait requests. Each wait group is**      unique, including the default wait group (NULL). A wait request**      that was added under a wait group will only be serviced by a caller**      that specified the same wait group.****  INPUT**      size        The size of the hash table to be used to contain the**                  receive wait objects. This is just the initial size.**                  It will grow as it needs to, but to avoid that hassle**                  one can suggest a suitable size initially. It should**                  be ~30% larger than the maximum number of receive wait**                  objects expected.**  RETURN**      PRWaitGroup If successful, the function will return a pointer to an**                  object that was allocated by and owned by the runtime.**                  The reference remains valid until it is explicitly destroyed**                  by calling PR_DestroyWaitGroup().****  ERRORS**      PR_OUT_OF_MEMORY_ERROR*/NSPR_API(PRWaitGroup*) PR_CreateWaitGroup(PRInt32 size);/*** FUNCTION:    PR_DestroyWaitGroup** DESCRIPTION:**      Undo the effects of PR_CreateWaitGroup(). Any receive wait operations**      on the group will be treated as if the each had been the target of a**      PR_CancelWaitFileDesc().****  INPUT**      group       Reference to a wait group previously allocated using**                  PR_CreateWaitGroup().**  RETURN**      PRStatus    Will be PR_SUCCESS if the wait group was valid and there**                  are no receive wait objects in that group. Otherwise**                  will indicate PR_FAILURE.****  ERRORS**      PR_INVALID_ARGUMENT_ERROR**                  The 'group' argument does not reference a known object.**      PR_INVALID_STATE_ERROR**                  The group still contains receive wait objects.*/NSPR_API(PRStatus) PR_DestroyWaitGroup(PRWaitGroup *group);/*** FUNCTION:    PR_CreateMWaitEnumerator** DESCRIPTION:**      The PR_CreateMWaitEnumerator() function returns a reference to an**      opaque PRMWaitEnumerator object. The enumerator object is required**      as an argument for each successive call in the stateless enumeration**      of the indicated wait group.****      group       The wait group that the enumeration is intended to**                  process. It may be be the default wait group (NULL).** RETURN**      PRMWaitEnumerator* group**                  A reference to an object that will be used to store**                  intermediate state of enumerations.** ERRORS**      Errors are indicated by the function returning a NULL.**      PR_INVALID_ARGUMENT_ERROR**                  The 'group' argument does not reference a known object.**      PR_OUT_OF_MEMORY_ERROR*/NSPR_API(PRMWaitEnumerator*) PR_CreateMWaitEnumerator(PRWaitGroup *group);/*** FUNCTION:    PR_DestroyMWaitEnumerator** DESCRIPTION:**      Destroys the object created by PR_CreateMWaitEnumerator(). The reference**      used as an argument becomes invalid.**** INPUT**      PRMWaitEnumerator* enumerator**          The PRMWaitEnumerator object to destroy.** RETURN**      PRStatus**          PR_SUCCESS if successful, PR_FAILURE otherwise.** ERRORS**      PR_INVALID_ARGUMENT_ERROR**                  The enumerator is invalid.*/NSPR_API(PRStatus) PR_DestroyMWaitEnumerator(PRMWaitEnumerator* enumerator);/*** FUNCTION:    PR_EnumerateWaitGroup** DESCRIPTION:**      PR_EnumerateWaitGroup is a thread safe enumerator over a wait group.**      Each call to the enumerator must present a valid PRMWaitEnumerator**      rererence and a pointer to the "previous" element returned from the**      enumeration process or a NULL.****      An enumeration is started by passing a NULL as the "previous" value.**      Subsequent calls to the enumerator must pass in the result of the**      previous call. The enumeration end is signaled by the runtime returning**      a NULL as the result.****      Modifications to the content of the wait group are allowed during**      an enumeration. The effect is that the enumeration may have to be**      "reset" and that may result in duplicates being returned from the**      enumeration.****      An enumeration may be abandoned at any time. The runtime is not**      keeping any state, so there are no issues in that regard.*/NSPR_API(PRRecvWait*) PR_EnumerateWaitGroup(    PRMWaitEnumerator *enumerator, const PRRecvWait *previous);   PR_END_EXTERN_C#endif /* defined(_PRMWAIT_H) *//* prmwait.h */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -