From 109913cb18ce2bf6f60b6e59d6a1a29853e310e5 Mon Sep 17 00:00:00 2001 From: Pablo Curiel Date: Sat, 2 May 2020 20:36:09 -0400 Subject: [PATCH] Fix gamecard deadlock. --- source/gamecard.c | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/source/gamecard.c b/source/gamecard.c index defe5f9..76c9dbd 100644 --- a/source/gamecard.c +++ b/source/gamecard.c @@ -520,16 +520,11 @@ static int gamecardDetectionThreadFunc(void *arg) Waiter gamecard_event_waiter = waiterForEvent(&g_gameCardKernelEvent); Waiter exit_event_waiter = waiterForUEvent(&g_gameCardDetectionThreadExitEvent); - mutexLock(&g_gamecardMutex); - /* Retrieve initial gamecard insertion status */ - g_gameCardInserted = prev_status = gamecardIsInserted(); - /* Load gamecard info right away if a gamecard is inserted */ + g_gameCardInserted = prev_status = gamecardIsInserted(); if (g_gameCardInserted) gamecardLoadInfo(); - mutexUnlock(&g_gamecardMutex); - while(true) { /* Wait until an event is triggered */ @@ -563,10 +558,8 @@ static int gamecardDetectionThreadFunc(void *arg) } /* Free gamecard info and close gamecard handle */ - mutexLock(&g_gamecardMutex); gamecardFreeInfo(); g_gameCardInserted = false; - mutexUnlock(&g_gamecardMutex); return 0; }