This patch was made as using an environment variable instead of a registry entry because it addresses unwanted/bugged behaviour. I could be wrong about that.
With ADD_GTCTO=5000, Magic the Gathering: Arena's updater/ downloader completes without issue. It should work for other outdated unity-build games that suffer the same issue.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=45546 Signed-off-by: Vanida Plamondon vanida.plamondon@gmail.com --- v1: Created ADD_GTCTO environment variable --- dlls/ntdll/thread.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/dlls/ntdll/thread.c b/dlls/ntdll/thread.c index 46de839400..09aa94ba65 100644 --- a/dlls/ntdll/thread.c +++ b/dlls/ntdll/thread.c @@ -23,6 +23,7 @@
#include <assert.h> #include <stdarg.h> +#include <stdlib.h> #include <limits.h> #include <sys/types.h> #ifdef HAVE_SYS_MMAN_H @@ -772,7 +773,11 @@ NTSTATUS set_thread_context( HANDLE handle, const context_t *context, BOOL *self NTSTATUS get_thread_context( HANDLE handle, context_t *context, unsigned int flags, BOOL *self ) { NTSTATUS ret; - DWORD dummy, i; + DWORD dummy, i, gtcto; + + /* get the ADD_GTCTO value, if any */ + const char *add_gtcto = getenv( "ADD_GTCTO" ); + gtcto = add_gtcto ? ( DWORD ) ( atol( add_gtcto) + 100 ) : 100;
SERVER_START_REQ( get_thread_context ) { @@ -787,7 +792,7 @@ NTSTATUS get_thread_context( HANDLE handle, context_t *context, unsigned int fla
if (ret == STATUS_PENDING) { - for (i = 0; i < 100; i++) + for (i = 0; i < gtcto; i++) { SERVER_START_REQ( get_thread_context ) {