VirtualBox

Changeset 25720 in vbox for trunk/include


Ignore:
Timestamp:
Jan 11, 2010 1:57:09 PM (15 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
56460
Message:

iprt: Added RTSemEventMultiCreateEx and did some cleanups of the RTSemEventMultiDestroy behavior wrt NIL handles.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/semaphore.h

    r25717 r25720  
    5959
    6060/**
    61  * Create a event semaphore.
     61 * Create an event semaphore.
    6262 *
    6363 * @returns iprt status code.
     
    6868
    6969/**
    70  * Creates a read/write semaphore.
     70 * Create an event semaphore.
    7171 *
    7272 * @returns iprt status code.
     
    9191/** @} */
    9292
    93 
    9493/**
    9594 * Destroy an event semaphore.
     
    183182
    184183/**
    185  * Create a event multi semaphore.
    186  *
    187  * @returns iprt status code.
    188  * @param   pEventMultiSem  Where to store the event multi semaphore handle.
    189  */
    190 RTDECL(int)  RTSemEventMultiCreate(PRTSEMEVENTMULTI pEventMultiSem);
     184 * Creates a multiple release event semaphore.
     185 *
     186 * @returns iprt status code.
     187 * @param   phEventMultiSem     Where to store the handle to the newly created
     188 *                              multiple release event semaphore.
     189 */
     190RTDECL(int)  RTSemEventMultiCreate(PRTSEMEVENTMULTI phEventMultiSem);
     191
     192/**
     193 * Creates a multiple release event semaphore.
     194 *
     195 * @returns iprt status code.
     196 * @param   phEventMultiSem     Where to store the handle to the newly created
     197 *                              multiple release event semaphore.
     198 * @param   fFlags              Flags, any combination of the
     199 *                              RTSEMEVENTMULTI_FLAGS_XXX \#defines.
     200 * @param   hClass              The class (no reference consumed).  Since we
     201 *                              don't do order checks on event semaphores, the
     202 *                              use of the class is limited to controlling the
     203 *                              timeout threshold for deadlock detection.
     204 * @param   pszNameFmt          Name format string for the lock validator,
     205 *                              optional (NULL).  Max length is 32 bytes.
     206 * @param   ...                 Format string arguments.
     207 */
     208RTDECL(int)  RTSemEventMultiCreateEx(PRTSEMEVENTMULTI phEventMultiSem, uint32_t fFlags, RTLOCKVALCLASS hClass,
     209                                     const char *pszNameFmt, ...);
     210
     211/** @name RTSemMutexCreateEx flags
     212 * @{ */
     213/** Disables lock validation. */
     214#define RTSEMEVENTMULTI_FLAGS_NO_LOCK_VAL   UINT32_C(0x00000001)
     215/** @} */
    191216
    192217/**
     
    194219 *
    195220 * @returns iprt status code.
    196  * @param   EventMultiSem   The event multi sempahore to destroy.
    197  */
    198 RTDECL(int)  RTSemEventMultiDestroy(RTSEMEVENTMULTI EventMultiSem);
     221 * @param   hEventMultiSem      The multiple release event sempahore.  NIL is
     222 *                              quietly ignored (VINF_SUCCESS).
     223 */
     224RTDECL(int)  RTSemEventMultiDestroy(RTSEMEVENTMULTI hEventMultiSem);
    199225
    200226/**
     
    202228 *
    203229 * @returns iprt status code.
    204  * @param   EventMultiSem   The event multi semaphore to signal.
    205  */
    206 RTDECL(int)  RTSemEventMultiSignal(RTSEMEVENTMULTI EventMultiSem);
     230 * @param   hEventMultiSem      The multiple release event sempahore.
     231 */
     232RTDECL(int)  RTSemEventMultiSignal(RTSEMEVENTMULTI hEventMultiSem);
    207233
    208234/**
     
    210236 *
    211237 * @returns iprt status code.
    212  * @param   EventMultiSem   The event multi semaphore to reset.
    213  */
    214 RTDECL(int)  RTSemEventMultiReset(RTSEMEVENTMULTI EventMultiSem);
     238 * @param   hEventMultiSem      The multiple release event sempahore.
     239 */
     240RTDECL(int)  RTSemEventMultiReset(RTSEMEVENTMULTI hEventMultiSem);
    215241
    216242/**
     
    222248 * @returns iprt status code.
    223249 *          Will not return VERR_INTERRUPTED.
    224  * @param   EventMultiSem   The event multi semaphore to wait on.
    225  * @param   cMillies        Number of milliseconds to wait.
    226  */
    227 RTDECL(int)  RTSemEventMultiWait(RTSEMEVENTMULTI EventMultiSem, unsigned cMillies);
     250 * @param   hEventMultiSem      The multiple release event sempahore.
     251 * @param   cMillies            Number of milliseconds to wait.
     252 */
     253RTDECL(int)  RTSemEventMultiWait(RTSEMEVENTMULTI hEventMultiSem, unsigned cMillies);
    228254
    229255
     
    234260 *
    235261 * @returns iprt status code.
    236  * @param   EventMultiSem   The event multi semaphore to wait on.
    237  * @param   cMillies        Number of milliseconds to wait.
    238  */
    239 RTDECL(int)  RTSemEventMultiWaitNoResume(RTSEMEVENTMULTI EventMultiSem, unsigned cMillies);
     262 * @param   hEventMultiSem      The multiple release event sempahore.
     263 * @param   cMillies            Number of milliseconds to wait.
     264 */
     265RTDECL(int)  RTSemEventMultiWaitNoResume(RTSEMEVENTMULTI hEventMultiSem, unsigned cMillies);
    240266
    241267/**
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette