mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2026-09-23 20:57:20 +08:00
update pthreads components.
git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1046 bbd45198-f89e-11dd-88c7-29a3b14d5316
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user