diff --git a/src/pipewire/global.c b/src/pipewire/global.c index 6b2459279..6fcaf3669 100644 --- a/src/pipewire/global.c +++ b/src/pipewire/global.c @@ -36,8 +36,6 @@ PW_LOG_TOPIC_EXTERN(log_global); #define PW_LOG_TOPIC_DEFAULT log_global -static uint64_t serial = 0; - /** \cond */ struct impl { struct pw_global this; @@ -122,10 +120,11 @@ error_cleanup: SPA_EXPORT uint64_t pw_global_get_serial(struct pw_global *global) { + struct pw_context *context = global->context; if (global->serial == SPA_ID_INVALID) - global->serial = serial++; - if ((uint32_t)serial == SPA_ID_INVALID) - serial++; + global->serial = context->serial++; + if ((uint32_t)context->serial == SPA_ID_INVALID) + context->serial++; return global->serial; } diff --git a/src/pipewire/private.h b/src/pipewire/private.h index f36f4e746..fd5e70d4c 100644 --- a/src/pipewire/private.h +++ b/src/pipewire/private.h @@ -424,6 +424,7 @@ struct pw_context { struct pw_mempool *pool; /**< global memory pool */ + uint64_t serial; struct pw_map globals; /**< map of globals */ struct spa_list core_impl_list; /**< list of core_imp */