mirror of
https://github.com/apache/nuttx-apps.git
synced 2026-08-26 20:00:50 +00:00
ostest/spinlock: fix the operations does not affect the result.
When expanding the macro VERIY, (0 == pthread_barrier_wait(¶m->pub->barrier)) < 0 always false. Regardless of the value of its operands. Signed-off-by: anpeiyun <anpeiyun@xiaomi.com>
This commit is contained in:
parent
36e701448c
commit
f86246f7c6
1 changed files with 23 additions and 4 deletions
|
|
@ -91,7 +91,12 @@ FAR static void * lock_type##_test_thread(FAR void *arg) \
|
|||
struct timespec start; \
|
||||
struct timespec end; \
|
||||
int i; \
|
||||
VERIFY(0 == pthread_barrier_wait(¶m->pub->barrier)); \
|
||||
int ret; \
|
||||
ret = pthread_barrier_wait(¶m->pub->barrier); \
|
||||
if (ret != 0 && ret != PTHREAD_BARRIER_SERIAL_THREAD) \
|
||||
{ \
|
||||
ASSERT(false); \
|
||||
} \
|
||||
clock_gettime(CLOCK_REALTIME, &start); \
|
||||
for (i = 0; i < LOOP_TIMES; i++) \
|
||||
{ \
|
||||
|
|
@ -121,8 +126,14 @@ static inline void run_test_thread(
|
|||
struct timespec stime;
|
||||
struct timespec etime;
|
||||
int i;
|
||||
int ret;
|
||||
|
||||
ret = pthread_barrier_init(&pub.barrier, NULL, THREAD_NUM + 1);
|
||||
if (ret != 0)
|
||||
{
|
||||
ASSERT(false);
|
||||
}
|
||||
|
||||
VERIFY(0 == pthread_barrier_init(&pub.barrier, NULL, THREAD_NUM + 1));
|
||||
pub.counter = 0;
|
||||
if (lock_type == RSPINLOCK)
|
||||
{
|
||||
|
|
@ -141,7 +152,11 @@ static inline void run_test_thread(
|
|||
pthread_create(&tid[i], NULL, thread_func, ¶m[i]);
|
||||
}
|
||||
|
||||
VERIFY(0 == pthread_barrier_wait(&pub.barrier));
|
||||
ret = pthread_barrier_wait(&pub.barrier);
|
||||
if (ret != 0 && ret != PTHREAD_BARRIER_SERIAL_THREAD)
|
||||
{
|
||||
ASSERT(false);
|
||||
}
|
||||
|
||||
for (i = 0; i < THREAD_NUM; i++)
|
||||
{
|
||||
|
|
@ -149,7 +164,11 @@ static inline void run_test_thread(
|
|||
}
|
||||
|
||||
clock_gettime(CLOCK_REALTIME, &etime);
|
||||
VERIFY(0 == pthread_barrier_destroy(&pub.barrier));
|
||||
ret = pthread_barrier_destroy(&pub.barrier);
|
||||
if (ret != 0)
|
||||
{
|
||||
ASSERT(false);
|
||||
}
|
||||
|
||||
uint64_t total_ns = 0;
|
||||
for (i = 0; i < THREAD_NUM; i++)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue