Skip a lock/unlock when logging known categories

This commit is contained in:
Sam Lantinga
2024-09-17 01:59:54 -07:00
parent c499f79fe9
commit 6180da00e1

View File

@@ -239,6 +239,14 @@ SDL_LogPriority SDL_GetLogPriority(int category)
SDL_CheckInitLog(); SDL_CheckInitLog();
// Bypass the lock for known categories
// Technically if the priority was set on a different CPU the value might not
// be visible on this CPU for a while, but in practice it's fast enough that
// this performance improvement is worthwhile.
if (category >= 0 && category < SDL_arraysize(SDL_log_priorities)) {
return SDL_log_priorities[category];
}
SDL_LockMutex(SDL_log_lock); SDL_LockMutex(SDL_log_lock);
{ {
if (category >= 0 && category < SDL_arraysize(SDL_log_priorities)) { if (category >= 0 && category < SDL_arraysize(SDL_log_priorities)) {