* pthread_mutex_destroy.c: Set mutex type to an invalid value.

* pthread_mutex_lock.c: Return EINVAL for invalid mutex type.
	* pthread_mutex_trylock.c: Likewise.
	* pthread_mutex_timedlock.c: Likewise.
	* pthread_mutex_unlock.c: Likewise.
This commit is contained in:
Ulrich Drepper 2005-12-23 23:49:41 +00:00
parent 9256e5794f
commit dcc73a8dda
6 changed files with 32 additions and 13 deletions

View File

@ -1,3 +1,11 @@
2005-12-23 Ulrich Drepper <drepper@redhat.com>
* pthread_mutex_destroy.c: Set mutex type to an invalid value.
* pthread_mutex_lock.c: Return EINVAL for invalid mutex type.
* pthread_mutex_trylock.c: Likewise.
* pthread_mutex_timedlock.c: Likewise.
* pthread_mutex_unlock.c: Likewise.
2005-12-22 Roland McGrath <roland@redhat.com>
* sysdeps/pthread/sigaction.c: Use "" instead of <> to include self,

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@ -28,6 +28,9 @@ __pthread_mutex_destroy (mutex)
if (mutex->__data.__nusers != 0)
return EBUSY;
/* Set to an invalid value. */
mutex->__data.__kind = -1;
return 0;
}
strong_alias (__pthread_mutex_destroy, pthread_mutex_destroy)

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@ -68,8 +68,6 @@ __pthread_mutex_lock (mutex)
/* FALLTHROUGH */
default:
/* Correct code cannot set any other type. */
case PTHREAD_MUTEX_TIMED_NP:
simple:
/* Normal mutex. */
@ -102,6 +100,10 @@ __pthread_mutex_lock (mutex)
mutex->__data.__spins += (cnt - mutex->__data.__spins) / 8;
}
break;
default:
/* Correct code cannot set any other type. */
return EINVAL;
}
/* Record the ownership. */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
/* Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@ -70,8 +70,6 @@ pthread_mutex_timedlock (mutex, abstime)
/* FALLTHROUGH */
default:
/* Correct code cannot set any other type. */
case PTHREAD_MUTEX_TIMED_NP:
simple:
/* Normal mutex. */
@ -104,6 +102,10 @@ pthread_mutex_timedlock (mutex, abstime)
mutex->__data.__spins += (cnt - mutex->__data.__spins) / 8;
}
break;
default:
/* Correct code cannot set any other type. */
return EINVAL;
}
if (result == 0)

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@ -57,8 +57,6 @@ __pthread_mutex_trylock (mutex)
case PTHREAD_MUTEX_ERRORCHECK_NP:
/* Error checking mutex. We do not check for deadlocks. */
default:
/* Correct code cannot set any other type. */
case PTHREAD_MUTEX_TIMED_NP:
case PTHREAD_MUTEX_ADAPTIVE_NP:
/* Normal mutex. */
@ -70,6 +68,10 @@ __pthread_mutex_trylock (mutex)
return 0;
}
default:
/* Correct code cannot set any other type. */
return EINVAL;
}
return EBUSY;

View File

@ -1,4 +1,4 @@
/* Copyright (C) 2002, 2003 Free Software Foundation, Inc.
/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
@ -47,12 +47,14 @@ __pthread_mutex_unlock_usercnt (mutex, decr)
return EPERM;
break;
default:
/* Correct code cannot set any other type. */
case PTHREAD_MUTEX_TIMED_NP:
case PTHREAD_MUTEX_ADAPTIVE_NP:
/* Normal mutex. Nothing special to do. */
break;
default:
/* Correct code cannot set any other type. */
return EINVAL;
}
/* Always reset the owner field. */