Ignore:
Timestamp:
Nov 9, 2005 3:37:19 PM (19 years ago)
Author:
bennylp
Message:

Rework pjlib++

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/main/pjlib/src/pj/os_core_win32.c

    r6 r36  
    514514 
    515515/* 
    516  * pj_atomic_inc() 
    517  */ 
    518 PJ_DEF(void) pj_atomic_inc(pj_atomic_t *atomic_var) 
     516 * pj_atomic_inc_and_get() 
     517 */ 
     518PJ_DEF(pj_atomic_value_t) pj_atomic_inc_and_get(pj_atomic_t *atomic_var) 
    519519{ 
    520520    PJ_CHECK_STACK(); 
    521521 
    522522#if defined(PJ_WIN32_WINNT) && PJ_WIN32_WINNT >= 0x0400 
    523     InterlockedIncrement(&atomic_var->value); 
     523    return InterlockedIncrement(&atomic_var->value); 
    524524#else 
    525525#   error Fix Me 
     
    528528 
    529529/* 
    530  * pj_atomic_dec() 
    531  */ 
    532 PJ_DEF(void) pj_atomic_dec(pj_atomic_t *atomic_var) 
     530 * pj_atomic_inc() 
     531 */ 
     532PJ_DEF(void) pj_atomic_inc(pj_atomic_t *atomic_var) 
     533{ 
     534    pj_atomic_inc_and_get(atomic_var); 
     535} 
     536 
     537/* 
     538 * pj_atomic_dec_and_get() 
     539 */ 
     540PJ_DEF(pj_atomic_value_t) pj_atomic_dec_and_get(pj_atomic_t *atomic_var) 
    533541{ 
    534542    PJ_CHECK_STACK(); 
    535543 
    536544#if defined(PJ_WIN32_WINNT) && PJ_WIN32_WINNT >= 0x0400 
    537     InterlockedDecrement(&atomic_var->value); 
     545    return InterlockedDecrement(&atomic_var->value); 
    538546#else 
    539547#   error Fix me 
     
    542550 
    543551/* 
     552 * pj_atomic_dec() 
     553 */ 
     554PJ_DEF(void) pj_atomic_dec(pj_atomic_t *atomic_var) 
     555{ 
     556    pj_atomic_dec_and_get(atomic_var); 
     557} 
     558 
     559/* 
    544560 * pj_atomic_add() 
    545561 */ 
     
    547563                            pj_atomic_value_t value ) 
    548564{ 
     565#if defined(PJ_WIN32_WINNT) && PJ_WIN32_WINNT >= 0x0400 
    549566    InterlockedExchangeAdd( &atomic_var->value, value ); 
    550 } 
    551  
    552          
     567#else 
     568#   error Fix me 
     569#endif 
     570} 
     571 
     572/* 
     573 * pj_atomic_add_and_get() 
     574 */ 
     575PJ_DEF(pj_atomic_value_t) pj_atomic_add_and_get( pj_atomic_t *atomic_var, 
     576                                                 pj_atomic_value_t value) 
     577{ 
     578#if defined(PJ_WIN32_WINNT) && PJ_WIN32_WINNT >= 0x0400 
     579    long oldValue = InterlockedExchangeAdd( &atomic_var->value, value); 
     580    return oldValue + value; 
     581#else 
     582#   error Fix me 
     583#endif 
     584} 
     585 
    553586/////////////////////////////////////////////////////////////////////////////// 
    554587/* 
Note: See TracChangeset for help on using the changeset viewer.