forked from Imagelibrary/rtems
2008-07-18 Joel Sherrill <joel.sherrill@oarcorp.com>
PR 1291/cpukit * psx05/init.c, psxmsgq01/init.c: As part of addressing timeouts and POSIX services taking relative instead of absolute time for timeouts, these tests were updated.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* COPYRIGHT (c) 1989-1999.
|
||||
* COPYRIGHT (c) 1989-2008.
|
||||
* On-Line Applications Research Corporation (OAR).
|
||||
*
|
||||
* The license and distribution terms for this file may be
|
||||
@@ -72,6 +72,27 @@ void Print_mutexattr(
|
||||
}
|
||||
}
|
||||
|
||||
void calculate_abstimeout(
|
||||
struct timespec *times,
|
||||
uint32_t seconds,
|
||||
uint32_t nanoseconds
|
||||
)
|
||||
{
|
||||
struct timeval tv1;
|
||||
struct timezone tz1;
|
||||
|
||||
gettimeofday( &tv1, &tz1 );
|
||||
|
||||
times->tv_sec = seconds + tv1.tv_sec;
|
||||
times->tv_nsec = nanoseconds + (tv1.tv_usec * 1000);
|
||||
|
||||
while ( times->tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) {
|
||||
times->tv_sec++;
|
||||
times->tv_nsec - TOD_NANOSECONDS_PER_SECOND;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void *POSIX_Init(
|
||||
void *argument
|
||||
)
|
||||
@@ -343,13 +364,13 @@ void *POSIX_Init(
|
||||
printf( "status = %d\n", status );
|
||||
assert( status == EPERM );
|
||||
|
||||
times.tv_sec = 0;
|
||||
times.tv_nsec = 500000000;
|
||||
puts( "Init: pthread_mutex_timedlock - time out in 1/2 second" );
|
||||
calculate_abstimeout( ×, 0, (TOD_NANOSECONDS_PER_SECOND / 2) );
|
||||
|
||||
status = pthread_mutex_timedlock( &Mutex_id, × );
|
||||
if ( status != EAGAIN )
|
||||
if ( status != ETIMEDOUT )
|
||||
printf( "status = %d\n", status );
|
||||
assert( status == EAGAIN );
|
||||
assert( status == ETIMEDOUT );
|
||||
|
||||
/* switch to idle */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user