2021-03-08 07:18:51 +08:00
|
|
|
/*
|
|
|
|
* Copyright (c) 2006-2021, RT-Thread Development Team
|
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
|
|
*
|
|
|
|
* Change Logs:
|
|
|
|
* Date Author Notes
|
|
|
|
*/
|
2021-05-22 02:50:35 +08:00
|
|
|
#include <sys/errno.h>
|
2010-11-18 19:31:54 +08:00
|
|
|
#include <stdio.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include <pthread.h>
|
|
|
|
#include <unistd.h>
|
|
|
|
|
2024-08-14 07:36:32 +08:00
|
|
|
#define usleep rt_thread_delay
|
2010-11-18 19:31:54 +08:00
|
|
|
|
|
|
|
static void *test_thread(void *v_param) {
|
2021-03-07 08:34:04 +08:00
|
|
|
return NULL;
|
2010-11-18 19:31:54 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
int libc_ex6(void) {
|
2021-03-07 08:34:04 +08:00
|
|
|
unsigned long count;
|
2010-11-18 19:31:54 +08:00
|
|
|
|
2021-03-07 08:34:04 +08:00
|
|
|
setvbuf(stdout, NULL, _IONBF, 0);
|
2010-11-18 19:31:54 +08:00
|
|
|
|
2021-03-07 08:34:04 +08:00
|
|
|
for (count = 0; count < 2000; ++count) {
|
|
|
|
pthread_t thread;
|
|
|
|
int status;
|
2010-11-18 19:31:54 +08:00
|
|
|
|
2021-03-07 08:34:04 +08:00
|
|
|
status = pthread_create(&thread, NULL, test_thread, NULL);
|
|
|
|
if (status != 0) {
|
|
|
|
printf("status = %d, count = %lu: %s\n", status, count, strerror(
|
|
|
|
errno));
|
|
|
|
return 1;
|
|
|
|
} else {
|
|
|
|
printf("count = %lu\n", count);
|
|
|
|
}
|
|
|
|
/* pthread_detach (thread); */
|
|
|
|
pthread_join(thread, NULL);
|
|
|
|
usleep(10);
|
|
|
|
}
|
|
|
|
return 0;
|
2010-11-18 19:31:54 +08:00
|
|
|
}
|
|
|
|
#include <finsh.h>
|
|
|
|
FINSH_FUNCTION_EXPORT(libc_ex6, example 6 for libc);
|