Corrected issue with unclosed threads

This commit is contained in:
raysan5 2016-06-24 19:34:47 +02:00
parent 03d9583b94
commit a522b6e23b

View file

@ -447,6 +447,14 @@ void CloseWindow(void)
} }
#endif #endif
#if defined(PLATFORM_RPI)
// Wait for mouse and gamepad threads to finish before closing
// NOTE: Those threads should already have finished at this point
// because they are controlled by windowShouldClose variable
pthread_join(mouseThreadId, NULL);
pthread_join(gamepadThreadId, NULL);
#endif
TraceLog(INFO, "Window closed successfully"); TraceLog(INFO, "Window closed successfully");
} }
@ -1771,7 +1779,7 @@ static void InitGraphics(void)
} }
// Compute framebuffer size relative to screen size and display size // Compute framebuffer size relative to screen size and display size
// NOTE: Global variables renderWidth/renderHeight can be modified // NOTE: Global variables renderWidth/renderHeight and renderOffsetX/renderOffsetY can be modified
static void SetupFramebufferSize(int displayWidth, int displayHeight) static void SetupFramebufferSize(int displayWidth, int displayHeight)
{ {
// TODO: SetupFramebufferSize() does not consider properly display video modes. // TODO: SetupFramebufferSize() does not consider properly display video modes.
@ -2752,7 +2760,7 @@ static void *GamepadThread(void *arg)
// Read gamepad event // Read gamepad event
struct js_event gamepadEvent; struct js_event gamepadEvent;
while (1) while (!windowShouldClose)
{ {
for (int i = 0; i < MAX_GAMEPADS; i++) for (int i = 0; i < MAX_GAMEPADS; i++)
{ {
@ -2787,7 +2795,7 @@ static void *GamepadThread(void *arg)
return NULL; return NULL;
} }
#endif #endif // PLATFORM_RPI
// Plays raylib logo appearing animation // Plays raylib logo appearing animation
static void LogoAnimation(void) static void LogoAnimation(void)