Navigation


Changeset 139:8b8d11fadc4e in freeDiameter


Ignore:
Timestamp:
Dec 16, 2009, 5:12:51 PM (14 years ago)
Author:
Sebastien Decugis <sdecugis@nict.go.jp>
Branch:
default
Phase:
public
Message:

Attempt to fix behavior on multi-CPU platforms, take 2

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libfreeDiameter/fifo.c

    r138 r139  
    163163                CHECK_POSIX(  pthread_cond_signal(&q->cond)  );
    164164                sched_yield();
     165                if (loops >= 10)
     166                        /* sleep for a few milliseconds */
     167                        usleep(50000);
     168               
    165169                CHECK_POSIX(  pthread_mutex_lock( &q->mtx )  );
    166                 ASSERT( ++loops < 10 ); /* detect infinite loops */
     170                ASSERT( ++loops < 20 ); /* detect infinite loops */
    167171        }
    168172       
     
    211215                CHECK_POSIX(  pthread_cond_signal(&old->cond)  );
    212216                sched_yield();
     217                if (loops >= 10)
     218                        /* sleep for a few milliseconds */
     219                        usleep(50000);
     220               
    213221                CHECK_POSIX(  pthread_mutex_lock( &old->mtx )  );
    214                 ASSERT( ++loops < 10 ); /* detect infinite loops */
     222                ASSERT( ++loops < 20 ); /* detect infinite loops */
    215223        }
    216224       
Note: See TracChangeset for help on using the changeset viewer.