38 lines
		
	
	
		
			741 B
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			38 lines
		
	
	
		
			741 B
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								#include <errno.h>
							 | 
						||
| 
								 | 
							
								#include <stdio.h>
							 | 
						||
| 
								 | 
							
								#include <string.h>
							 | 
						||
| 
								 | 
							
								#include <pthread.h>
							 | 
						||
| 
								 | 
							
								#include <unistd.h>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define usleep rt_thread_sleep
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								static void *test_thread(void *v_param) {
							 | 
						||
| 
								 | 
							
									return NULL;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								int libc_ex6(void) {
							 | 
						||
| 
								 | 
							
									unsigned long count;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									setvbuf(stdout, NULL, _IONBF, 0);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									for (count = 0; count < 2000; ++count) {
							 | 
						||
| 
								 | 
							
										pthread_t thread;
							 | 
						||
| 
								 | 
							
										int status;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										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;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								#include <finsh.h>
							 | 
						||
| 
								 | 
							
								FINSH_FUNCTION_EXPORT(libc_ex6, example 6 for libc);
							 |