forked from Bananymous/banan-os
				
			LibC: Implement dummy pthread_attr_{get,set}detachstate
detached threads are not yet supported, but this allows implementation to make sure threads are joinable.
This commit is contained in:
		
							parent
							
								
									2a5921b9c9
								
							
						
					
					
						commit
						b774f147da
					
				|  | @ -29,8 +29,6 @@ struct uthread | |||
| #define PTHREAD_CANCEL_DEFERRED			4 | ||||
| #define PTHREAD_CANCEL_DISABLE			5 | ||||
| #define PTHREAD_CANCELED				6 | ||||
| #define PTHREAD_CREATE_DETACHED			7 | ||||
| #define PTHREAD_CREATE_JOINABLE			8 | ||||
| #define PTHREAD_EXPLICIT_SCHED			9 | ||||
| #define PTHREAD_INHERIT_SCHED			10 | ||||
| #define PTHREAD_PRIO_INHERIT			18 | ||||
|  | @ -39,6 +37,9 @@ struct uthread | |||
| #define PTHREAD_SCOPE_PROCESS			23 | ||||
| #define PTHREAD_SCOPE_SYSTEM			24 | ||||
| 
 | ||||
| #define PTHREAD_CREATE_DETACHED			1 | ||||
| #define PTHREAD_CREATE_JOINABLE			0 | ||||
| 
 | ||||
| #define PTHREAD_BARRIER_SERIAL_THREAD	1 | ||||
| 
 | ||||
| #define PTHREAD_ONCE_INIT				0 | ||||
|  |  | |||
|  | @ -187,6 +187,28 @@ int pthread_attr_setstacksize(pthread_attr_t* attr, size_t stacksize) | |||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| int pthread_attr_getdetachstate(const pthread_attr_t* attr, int* detachstate) | ||||
| { | ||||
| 	(void)attr; | ||||
| 	*detachstate = PTHREAD_CREATE_JOINABLE; | ||||
| 	return 0; | ||||
| } | ||||
| 
 | ||||
| int pthread_attr_setdetachstate(pthread_attr_t* attr, int detachstate) | ||||
| { | ||||
| 	(void)attr; | ||||
| 	switch (detachstate) | ||||
| 	{ | ||||
| 		case PTHREAD_CREATE_DETACHED: | ||||
| 			dwarnln("TODO: pthread_attr_setdetachstate"); | ||||
| 			return ENOTSUP; | ||||
| 		case PTHREAD_CREATE_JOINABLE: | ||||
| 			return 0; | ||||
| 		default: | ||||
| 			return EINVAL; | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| int pthread_create(pthread_t* __restrict thread_id, const pthread_attr_t* __restrict attr, void* (*start_routine)(void*), void* __restrict arg) | ||||
| { | ||||
| 	auto* info = static_cast<pthread_trampoline_info_t*>(malloc(sizeof(pthread_trampoline_info_t))); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue