0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 04:42:18 +02:00

libobs: Add obs_weak_source_expired()

This commit is contained in:
jp9000 2021-10-15 21:43:31 -07:00
parent a78558b46a
commit 9819cb2924
3 changed files with 12 additions and 0 deletions

View File

@ -554,6 +554,12 @@ static inline bool obs_weak_ref_get_ref(struct obs_weak_ref *ref)
return false;
}
static inline bool obs_weak_ref_expired(struct obs_weak_ref *ref)
{
long owners = os_atomic_load_long(&ref->refs);
return owners < 0;
}
/* ------------------------------------------------------------------------- */
/* sources */

View File

@ -774,6 +774,11 @@ obs_source_t *obs_weak_source_get_source(obs_weak_source_t *weak)
return NULL;
}
bool obs_weak_source_expired(obs_weak_source_t *weak)
{
return weak ? obs_weak_ref_expired(&weak->ref) : true;
}
bool obs_weak_source_references_source(obs_weak_source_t *weak,
obs_source_t *source)
{

View File

@ -900,6 +900,7 @@ EXPORT void obs_weak_source_release(obs_weak_source_t *weak);
EXPORT obs_source_t *obs_source_get_ref(obs_source_t *source);
EXPORT obs_weak_source_t *obs_source_get_weak_source(obs_source_t *source);
EXPORT obs_source_t *obs_weak_source_get_source(obs_weak_source_t *weak);
EXPORT bool obs_weak_source_expired(obs_weak_source_t *weak);
EXPORT bool obs_weak_source_references_source(obs_weak_source_t *weak,
obs_source_t *source);