mirror of
https://github.com/libretro/RetroArch
synced 2025-03-23 10:20:57 +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 */
|
/* Increment the outstanding requests counter and set the load state */
|
||||||
void rcheevos_begin_load_state(enum rcheevos_load_state 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.outstanding_requests;
|
||||||
rcheevos_locals.load_info.state = state;
|
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.
|
/* Decrement and return the outstanding requests counter.
|
||||||
@ -1925,11 +1929,15 @@ int rcheevos_end_load_state(void)
|
|||||||
{
|
{
|
||||||
int requests = 0;
|
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)
|
if (rcheevos_locals.load_info.outstanding_requests > 0)
|
||||||
--rcheevos_locals.load_info.outstanding_requests;
|
--rcheevos_locals.load_info.outstanding_requests;
|
||||||
requests = 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;
|
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)
|
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();
|
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';
|
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)
|
if (badge_data->callback)
|
||||||
badge_data->callback(badge_data);
|
badge_data->callback(badge_data);
|
||||||
@ -1517,11 +1521,12 @@ static bool rcheevos_client_fetch_badge(
|
|||||||
|
|
||||||
/* check if it's already requested */
|
/* check if it's already requested */
|
||||||
{
|
{
|
||||||
const rcheevos_locals_t* rcheevos_locals = get_rcheevos_locals();
|
|
||||||
int found_index = -1;
|
|
||||||
int i;
|
int i;
|
||||||
|
int found_index = -1;
|
||||||
CHEEVOS_LOCK(rcheevos_locals->load_info.request_lock);
|
#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)
|
for (i = RCHEEVOS_CONCURRENT_BADGE_DOWNLOADS - 1; i >= 0; --i)
|
||||||
{
|
{
|
||||||
if (!state->requested_badges[i][0])
|
if (!state->requested_badges[i][0])
|
||||||
@ -1546,8 +1551,9 @@ static bool rcheevos_client_fetch_badge(
|
|||||||
badge_fullname,
|
badge_fullname,
|
||||||
sizeof(state->requested_badges[request_index]));
|
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)
|
if (found_index != -1)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -1606,20 +1612,24 @@ static bool rcheevos_fetch_next_badge(rcheevos_fetch_badge_state* state)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
const rcheevos_locals_t* rcheevos_locals = get_rcheevos_locals();
|
|
||||||
const rcheevos_racheevo_t* cheevo = NULL;
|
|
||||||
int active = 0;
|
int active = 0;
|
||||||
|
const rcheevos_racheevo_t *cheevo = NULL;
|
||||||
|
const rcheevos_locals_t* rcheevos_locals = get_rcheevos_locals();
|
||||||
|
|
||||||
/* fetch badges for current state of achievements first */
|
/* fetch badges for current state of achievements first */
|
||||||
do
|
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
|
if ( state->locked_badge_fetch_index
|
||||||
< rcheevos_locals->game.achievement_count)
|
< rcheevos_locals->game.achievement_count)
|
||||||
cheevo = &rcheevos_locals->game.achievements[state->locked_badge_fetch_index++];
|
cheevo = &rcheevos_locals->game.achievements[state->locked_badge_fetch_index++];
|
||||||
else
|
else
|
||||||
cheevo = NULL;
|
cheevo = NULL;
|
||||||
CHEEVOS_UNLOCK(rcheevos_locals->load_info.request_lock);
|
#ifdef HAVE_THREADS
|
||||||
|
slock_unlock(rcheevos_locals->load_info.request_lock);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!cheevo)
|
if (!cheevo)
|
||||||
break;
|
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 */
|
/* then fetch badges for unlocked state so they're ready when the user unlocks something */
|
||||||
do
|
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)
|
if (state->badge_fetch_index < rcheevos_locals->game.achievement_count)
|
||||||
cheevo = &rcheevos_locals->game.achievements[state->badge_fetch_index++];
|
cheevo = &rcheevos_locals->game.achievements[state->badge_fetch_index++];
|
||||||
else
|
else
|
||||||
cheevo = NULL;
|
cheevo = NULL;
|
||||||
|
|
||||||
CHEEVOS_UNLOCK(rcheevos_locals->load_info.request_lock);
|
#ifdef HAVE_THREADS
|
||||||
|
slock_unlock(rcheevos_locals->load_info.request_lock);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!cheevo)
|
if (!cheevo)
|
||||||
break;
|
break;
|
||||||
|
@ -190,14 +190,6 @@ bool rcheevos_load_aborted(void);
|
|||||||
|
|
||||||
void rcheevos_show_mastery_placard(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
|
RETRO_END_DECLS
|
||||||
|
|
||||||
#endif /* __RARCH_CHEEVOS_LOCALS_H */
|
#endif /* __RARCH_CHEEVOS_LOCALS_H */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user