attemping to add qse_sched_yield()
This commit is contained in:
		| @ -34,6 +34,9 @@ | |||||||
| #if defined(HAVE_SYS_TIME_H) | #if defined(HAVE_SYS_TIME_H) | ||||||
| #	include <sys/time.h> | #	include <sys/time.h> | ||||||
| #endif | #endif | ||||||
|  | #if defined(HAVE_SCHED_H) | ||||||
|  | #	include <sched.h> | ||||||
|  | #endif | ||||||
|  |  | ||||||
| void qse_sleep (const qse_ntime_t* interval) | void qse_sleep (const qse_ntime_t* interval) | ||||||
| { | { | ||||||
| @ -60,3 +63,22 @@ int qse_set_proc_name (const qse_char_t* name) | |||||||
| 	::prctl(PR_SET_NAME, name, 0, 0, 0); | 	::prctl(PR_SET_NAME, name, 0, 0, 0); | ||||||
| }*/ | }*/ | ||||||
|  |  | ||||||
|  |  | ||||||
|  | void qse_sched_yield (void) | ||||||
|  | { | ||||||
|  | #if defined(_WIN32) | ||||||
|  | 	SwitchToThread (); | ||||||
|  | 	/* or Sleep (0) */ | ||||||
|  | #elif defined(__OS2__) | ||||||
|  | 	DosSleep (0); | ||||||
|  | #elif defined(HAVE_SCHED_YIELD) | ||||||
|  | 	sched_yield(); | ||||||
|  | #elif defined(HAVE_NANOSLEEP) | ||||||
|  | 	struct timespec ts; | ||||||
|  | 	ts.tv_sec = 0; | ||||||
|  | 	ts.tv_nsec = 0; | ||||||
|  | 	nanosleep (&ts, &ts); | ||||||
|  | #else | ||||||
|  | 	sleep (0); | ||||||
|  | #endif | ||||||
|  | } | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user