+ Corrected error processing code.

This commit is contained in:
Jennifer Averett
1999-11-22 16:09:55 +00:00
parent f85409cf9c
commit 0ca4fc83a4
2 changed files with 30 additions and 28 deletions

View File

@@ -29,7 +29,6 @@ int _POSIX_Semaphore_Wait_support(
{
register POSIX_Semaphore_Control *the_semaphore;
Objects_Locations location;
int code;
the_semaphore = _POSIX_Semaphore_Get( sem, &location );
switch ( location ) {
@@ -37,7 +36,6 @@ int _POSIX_Semaphore_Wait_support(
set_errno_and_return_minus_one( EINVAL );
case OBJECTS_REMOTE:
_Thread_Dispatch();
return POSIX_MP_NOT_IMPLEMENTED();
set_errno_and_return_minus_one( EINVAL );
case OBJECTS_LOCAL:
_CORE_semaphore_Seize(
@@ -47,20 +45,23 @@ int _POSIX_Semaphore_Wait_support(
timeout
);
_Thread_Enable_dispatch();
code = _Thread_Executing->Wait.return_code;
switch (_Thread_Executing->Wait.return_code) {
case 1:
errno = EAGAIN;
code = -1;
switch ( _Thread_Executing->Wait.return_code ) {
case CORE_SEMAPHORE_STATUS_SUCCESSFUL:
break;
case 3:
errno = ETIMEDOUT;
code = -1;
case CORE_SEMAPHORE_STATUS_UNSATISFIED_NOWAIT:
set_errno_and_return_minus_one( EAGAIN );
case CORE_SEMAPHORE_WAS_DELETED:
set_errno_and_return_minus_one( EAGAIN );
case CORE_SEMAPHORE_TIMEOUT:
set_errno_and_return_minus_one( ETIMEDOUT );
break;
case CORE_SEMAPHORE_MAXIMUM_COUNT_EXCEEDED:
/*
* This error can not occur since we set the maximum
* count to the largest value the count can hold.
*/
break;
}
/*return _Thread_Executing->Wait.return_code;*/
return code;
}
return POSIX_BOTTOM_REACHED();
return 0;
}

View File

@@ -29,7 +29,6 @@ int _POSIX_Semaphore_Wait_support(
{
register POSIX_Semaphore_Control *the_semaphore;
Objects_Locations location;
int code;
the_semaphore = _POSIX_Semaphore_Get( sem, &location );
switch ( location ) {
@@ -37,7 +36,6 @@ int _POSIX_Semaphore_Wait_support(
set_errno_and_return_minus_one( EINVAL );
case OBJECTS_REMOTE:
_Thread_Dispatch();
return POSIX_MP_NOT_IMPLEMENTED();
set_errno_and_return_minus_one( EINVAL );
case OBJECTS_LOCAL:
_CORE_semaphore_Seize(
@@ -47,20 +45,23 @@ int _POSIX_Semaphore_Wait_support(
timeout
);
_Thread_Enable_dispatch();
code = _Thread_Executing->Wait.return_code;
switch (_Thread_Executing->Wait.return_code) {
case 1:
errno = EAGAIN;
code = -1;
switch ( _Thread_Executing->Wait.return_code ) {
case CORE_SEMAPHORE_STATUS_SUCCESSFUL:
break;
case 3:
errno = ETIMEDOUT;
code = -1;
case CORE_SEMAPHORE_STATUS_UNSATISFIED_NOWAIT:
set_errno_and_return_minus_one( EAGAIN );
case CORE_SEMAPHORE_WAS_DELETED:
set_errno_and_return_minus_one( EAGAIN );
case CORE_SEMAPHORE_TIMEOUT:
set_errno_and_return_minus_one( ETIMEDOUT );
break;
case CORE_SEMAPHORE_MAXIMUM_COUNT_EXCEEDED:
/*
* This error can not occur since we set the maximum
* count to the largest value the count can hold.
*/
break;
}
/*return _Thread_Executing->Wait.return_code;*/
return code;
}
return POSIX_BOTTOM_REACHED();
return 0;
}