mirror of
https://github.com/libretro/RetroArch
synced 2025-03-20 10:20:51 +00:00
(Cheevos) On platforms like WiiU that have cheevos support but no threading support, it was complaining about unused variables like rcheevos_locals. The macros for
slock_lock/slock_unlock seem needless anyway, so we just reference slock_lock/slock_unlock directly and put it behind HAVE_THREADS ifdefs so the user/programmer knows what is going on
This commit is contained in:
parent
f0e340fd23
commit
050107a90e
@ -1913,10 +1913,14 @@ static void rcheevos_login_callback(void* userdata)
|
||||
/* Increment the outstanding requests counter and set the load state */
|
||||
void rcheevos_begin_load_state(enum rcheevos_load_state state)
|
||||
{
|
||||
CHEEVOS_LOCK(rcheevos_locals.load_info.request_lock);
|
||||
#ifdef HAVE_THREADS
|
||||
slock_lock(rcheevos_locals.load_info.request_lock);
|
||||
#endif
|
||||
++rcheevos_locals.load_info.outstanding_requests;
|
||||
rcheevos_locals.load_info.state = state;
|
||||
CHEEVOS_UNLOCK(rcheevos_locals.load_info.request_lock);
|
||||
#ifdef HAVE_THREADS
|
||||
slock_unlock(rcheevos_locals.load_info.request_lock);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* Decrement and return the outstanding requests counter.
|
||||
@ -1925,11 +1929,15 @@ int rcheevos_end_load_state(void)
|
||||
{
|
||||
int requests = 0;
|
||||
|
||||
CHEEVOS_LOCK(rcheevos_locals.load_info.request_lock);
|
||||
#ifdef HAVE_THREADS
|
||||
slock_lock(rcheevos_locals.load_info.request_lock);
|
||||
#endif
|
||||
if (rcheevos_locals.load_info.outstanding_requests > 0)
|
||||
--rcheevos_locals.load_info.outstanding_requests;
|
||||
requests = rcheevos_locals.load_info.outstanding_requests;
|
||||
CHEEVOS_UNLOCK(rcheevos_locals.load_info.request_lock);
|
||||
#ifdef HAVE_THREADS
|
||||
slock_unlock(rcheevos_locals.load_info.request_lock);
|
||||
#endif
|
||||
|
||||
return requests;
|
||||
}
|
||||
|
@ -1425,11 +1425,15 @@ static void rcheevos_async_download_next_badge(void* userdata)
|
||||
|
||||
static void rcheevos_async_fetch_badge_complete(rcheevos_fetch_badge_data* badge_data)
|
||||
{
|
||||
#ifdef HAVE_THREADS
|
||||
const rcheevos_locals_t* rcheevos_locals = get_rcheevos_locals();
|
||||
|
||||
CHEEVOS_LOCK(rcheevos_locals->load_info.request_lock);
|
||||
slock_lock(rcheevos_locals->load_info.request_lock);
|
||||
#endif
|
||||
badge_data->state->requested_badges[badge_data->request_index][0] = '\0';
|
||||
CHEEVOS_UNLOCK(rcheevos_locals->load_info.request_lock);
|
||||
#ifdef HAVE_THREADS
|
||||
slock_unlock(rcheevos_locals->load_info.request_lock);
|
||||
#endif
|
||||
|
||||
if (badge_data->callback)
|
||||
badge_data->callback(badge_data);
|
||||
@ -1517,11 +1521,12 @@ static bool rcheevos_client_fetch_badge(
|
||||
|
||||
/* check if it's already requested */
|
||||
{
|
||||
const rcheevos_locals_t* rcheevos_locals = get_rcheevos_locals();
|
||||
int found_index = -1;
|
||||
int i;
|
||||
|
||||
CHEEVOS_LOCK(rcheevos_locals->load_info.request_lock);
|
||||
int found_index = -1;
|
||||
#ifdef HAVE_THREADS
|
||||
const rcheevos_locals_t* rcheevos_locals = get_rcheevos_locals();
|
||||
slock_lock(rcheevos_locals->load_info.request_lock);
|
||||
#endif
|
||||
for (i = RCHEEVOS_CONCURRENT_BADGE_DOWNLOADS - 1; i >= 0; --i)
|
||||
{
|
||||
if (!state->requested_badges[i][0])
|
||||
@ -1546,8 +1551,9 @@ static bool rcheevos_client_fetch_badge(
|
||||
badge_fullname,
|
||||
sizeof(state->requested_badges[request_index]));
|
||||
}
|
||||
CHEEVOS_UNLOCK(rcheevos_locals->load_info.request_lock);
|
||||
|
||||
#ifdef HAVE_THREADS
|
||||
slock_unlock(rcheevos_locals->load_info.request_lock);
|
||||
#endif
|
||||
if (found_index != -1)
|
||||
return false;
|
||||
}
|
||||
@ -1606,20 +1612,24 @@ static bool rcheevos_fetch_next_badge(rcheevos_fetch_badge_state* state)
|
||||
}
|
||||
else
|
||||
{
|
||||
int active = 0;
|
||||
const rcheevos_racheevo_t *cheevo = NULL;
|
||||
const rcheevos_locals_t* rcheevos_locals = get_rcheevos_locals();
|
||||
const rcheevos_racheevo_t* cheevo = NULL;
|
||||
int active = 0;
|
||||
|
||||
/* fetch badges for current state of achievements first */
|
||||
do
|
||||
{
|
||||
CHEEVOS_LOCK(rcheevos_locals->load_info.request_lock);
|
||||
#ifdef HAVE_THREADS
|
||||
slock_lock(rcheevos_locals->load_info.request_lock);
|
||||
#endif
|
||||
if ( state->locked_badge_fetch_index
|
||||
< rcheevos_locals->game.achievement_count)
|
||||
cheevo = &rcheevos_locals->game.achievements[state->locked_badge_fetch_index++];
|
||||
else
|
||||
cheevo = NULL;
|
||||
CHEEVOS_UNLOCK(rcheevos_locals->load_info.request_lock);
|
||||
#ifdef HAVE_THREADS
|
||||
slock_unlock(rcheevos_locals->load_info.request_lock);
|
||||
#endif
|
||||
|
||||
if (!cheevo)
|
||||
break;
|
||||
@ -1634,13 +1644,17 @@ static bool rcheevos_fetch_next_badge(rcheevos_fetch_badge_state* state)
|
||||
/* then fetch badges for unlocked state so they're ready when the user unlocks something */
|
||||
do
|
||||
{
|
||||
CHEEVOS_LOCK(rcheevos_locals->load_info.request_lock);
|
||||
#ifdef HAVE_THREADS
|
||||
slock_lock(rcheevos_locals->load_info.request_lock);
|
||||
#endif
|
||||
if (state->badge_fetch_index < rcheevos_locals->game.achievement_count)
|
||||
cheevo = &rcheevos_locals->game.achievements[state->badge_fetch_index++];
|
||||
else
|
||||
cheevo = NULL;
|
||||
|
||||
CHEEVOS_UNLOCK(rcheevos_locals->load_info.request_lock);
|
||||
#ifdef HAVE_THREADS
|
||||
slock_unlock(rcheevos_locals->load_info.request_lock);
|
||||
#endif
|
||||
|
||||
if (!cheevo)
|
||||
break;
|
||||
|
@ -190,14 +190,6 @@ bool rcheevos_load_aborted(void);
|
||||
|
||||
void rcheevos_show_mastery_placard(void);
|
||||
|
||||
#ifdef HAVE_THREADS
|
||||
#define CHEEVOS_LOCK(l) do { slock_lock(l); } while (0)
|
||||
#define CHEEVOS_UNLOCK(l) do { slock_unlock(l); } while (0)
|
||||
#else
|
||||
#define CHEEVOS_LOCK(l)
|
||||
#define CHEEVOS_UNLOCK(l)
|
||||
#endif
|
||||
|
||||
RETRO_END_DECLS
|
||||
|
||||
#endif /* __RARCH_CHEEVOS_LOCALS_H */
|
||||
|
Loading…
x
Reference in New Issue
Block a user