update pthreads components.

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1046 bbd45198-f89e-11dd-88c7-29a3b14d5316
This commit is contained in:
bernard.xiong@gmail.com
2010-11-15 00:25:37 +00:00
parent 45461f8afe
commit 468db50159
7 changed files with 282 additions and 24 deletions
+29 -4
View File
@@ -2,25 +2,50 @@
int pthread_spin_init (pthread_spinlock_t *lock, int pshared)
{
if (!lock) return EINVAL;
lock->lock = 0;
return 0;
}
int pthread_spin_destroy (pthread_spinlock_t *lock)
{
if (!lock) return EINVAL;
return 0;
}
int pthread_spin_lock (pthread_spinlock_t * lock)
int pthread_spin_lock (pthread_spinlock_t *lock)
{
if (!lock) return EINVAL;
while (!(lock->lock))
{
lock->lock = 1;
}
return 0;
}
int pthread_spin_trylock (pthread_spinlock_t * lock)
int pthread_spin_trylock (pthread_spinlock_t *lock)
{
return 0;
if (!lock) return EINVAL;
if (!(lock->lock))
{
lock->lock = 1;
return 0;
}
return EBUSY;
}
int pthread_spin_unlock (pthread_spinlock_t * lock)
int pthread_spin_unlock (pthread_spinlock_t *lock)
{
if (!lock) return EINVAL;
if (!(lock->lock)) return EPERM;
lock->lock = 0;
return 0;
}