fix(ai): use atomic operations for refcounting

Replace plain ref_count++/-- with g_atomic_int_inc and
g_atomic_int_dec_and_test for both AIProvider and AISession refcounts.
Prevents data races when ref/unref is called from worker threads.
This commit is contained in:
2026-05-01 18:24:57 +00:00
parent a16237d16b
commit f133d81a05
2 changed files with 8 additions and 8 deletions

View File

@@ -22,7 +22,7 @@ typedef struct ai_provider_t
gchar* org_id; /* Optional organization ID */
gchar* project_id; /* Optional project ID (for some providers) */
GList* models; /* List of available models (gchar*) */
guint ref_count; /* Reference count */
gint32 ref_count; /* Reference count (atomic) */
} AIProvider;
/**
@@ -35,7 +35,7 @@ typedef struct ai_session_t
gchar* model; /* Model identifier (e.g., "gpt-4", "sonar") */
gchar* api_key; /* API key for this session */
GList* history; /* Conversation history (GList of AIMessage*) */
guint ref_count; /* Reference count */
gint32 ref_count; /* Reference count (atomic) */
} AISession;
/* ========================================================================