diff --git a/configure b/configure index 7b215627241..ae5c8e2734e 100755 --- a/configure +++ b/configure @@ -1512,7 +1512,6 @@ enable_msv1_0 enable_msvcirt enable_msvcm80 enable_msvcm90 -enable_msvcp_win enable_msvcp100 enable_msvcp110 enable_msvcp120 @@ -1524,6 +1523,7 @@ enable_msvcp70 enable_msvcp71 enable_msvcp80 enable_msvcp90 +enable_msvcp_win enable_msvcr100 enable_msvcr110 enable_msvcr120 @@ -19085,6 +19085,12 @@ if test "x$ac_cv_func_proc_pidinfo" = xyes then : printf "%s\n" "#define HAVE_PROC_PIDINFO 1" >>confdefs.h +fi +ac_fn_c_check_func "$LINENO" "sched_yield" "ac_cv_func_sched_yield" +if test "x$ac_cv_func_sched_yield" = xyes +then : + printf "%s\n" "#define HAVE_SCHED_YIELD 1" >>confdefs.h + fi ac_fn_c_check_func "$LINENO" "setproctitle" "ac_cv_func_setproctitle" if test "x$ac_cv_func_setproctitle" = xyes @@ -21595,7 +21601,6 @@ wine_fn_config_makefile dlls/msvcirt enable_msvcirt wine_fn_config_makefile dlls/msvcirt/tests enable_tests wine_fn_config_makefile dlls/msvcm80 enable_msvcm80 wine_fn_config_makefile dlls/msvcm90 enable_msvcm90 -wine_fn_config_makefile dlls/msvcp_win enable_msvcp_win wine_fn_config_makefile dlls/msvcp100 enable_msvcp100 wine_fn_config_makefile dlls/msvcp100/tests enable_tests wine_fn_config_makefile dlls/msvcp110 enable_msvcp110 @@ -21614,6 +21619,7 @@ wine_fn_config_makefile dlls/msvcp71 enable_msvcp71 wine_fn_config_makefile dlls/msvcp80 enable_msvcp80 wine_fn_config_makefile dlls/msvcp90 enable_msvcp90 wine_fn_config_makefile dlls/msvcp90/tests enable_tests +wine_fn_config_makefile dlls/msvcp_win enable_msvcp_win wine_fn_config_makefile dlls/msvcr100 enable_msvcr100 wine_fn_config_makefile dlls/msvcr100/tests enable_tests wine_fn_config_makefile dlls/msvcr110 enable_msvcr110 diff --git a/configure.ac b/configure.ac index 5074ee14833..9c0c8d25d29 100644 --- a/configure.ac +++ b/configure.ac @@ -1948,6 +1948,7 @@ AC_CHECK_FUNCS(\ posix_fallocate \ prctl \ proc_pidinfo \ + sched_yield \ setproctitle \ setprogname \ sigprocmask \ @@ -3133,7 +3134,6 @@ WINE_CONFIG_MAKEFILE(dlls/msvcirt) WINE_CONFIG_MAKEFILE(dlls/msvcirt/tests) WINE_CONFIG_MAKEFILE(dlls/msvcm80) WINE_CONFIG_MAKEFILE(dlls/msvcm90) -WINE_CONFIG_MAKEFILE(dlls/msvcp_win) WINE_CONFIG_MAKEFILE(dlls/msvcp100) WINE_CONFIG_MAKEFILE(dlls/msvcp100/tests) WINE_CONFIG_MAKEFILE(dlls/msvcp110) @@ -3152,6 +3152,7 @@ WINE_CONFIG_MAKEFILE(dlls/msvcp71) WINE_CONFIG_MAKEFILE(dlls/msvcp80) WINE_CONFIG_MAKEFILE(dlls/msvcp90) WINE_CONFIG_MAKEFILE(dlls/msvcp90/tests) +WINE_CONFIG_MAKEFILE(dlls/msvcp_win) WINE_CONFIG_MAKEFILE(dlls/msvcr100) WINE_CONFIG_MAKEFILE(dlls/msvcr100/tests) WINE_CONFIG_MAKEFILE(dlls/msvcr110) diff --git a/dlls/ntdll/unix/sync.c b/dlls/ntdll/unix/sync.c index 7f71b737045..829add0be2d 100644 --- a/dlls/ntdll/unix/sync.c +++ b/dlls/ntdll/unix/sync.c @@ -1447,8 +1447,12 @@ NTSTATUS WINAPI NtSignalAndWaitForSingleObject( HANDLE signal, HANDLE wait, */ NTSTATUS WINAPI NtYieldExecution(void) { - usleep(0); +#ifdef HAVE_SCHED_YIELD + sched_yield(); return STATUS_SUCCESS; +#else + return STATUS_NO_YIELD_PERFORMED; +#endif } diff --git a/include/config.h.in b/include/config.h.in index 0c843a0423c..0fe50e8ce7c 100644 --- a/include/config.h.in +++ b/include/config.h.in @@ -443,6 +443,9 @@ /* Define to 1 if you have the `sched_setaffinity' function. */ #undef HAVE_SCHED_SETAFFINITY +/* Define to 1 if you have the `sched_yield' function. */ +#undef HAVE_SCHED_YIELD + /* Define to 1 if `cmd' is a member of `scsireq_t'. */ #undef HAVE_SCSIREQ_T_CMD