move omneon status threads to GThread
authorMaksym Veremeyenko <verem@m1stereo.tv>
Sat, 25 Jun 2011 09:06:29 +0000 (12:06 +0300)
committerMaksym Veremeyenko <verem@m1stereo.tv>
Sat, 25 Jun 2011 09:06:29 +0000 (12:06 +0300)
src/omnplay.cpp
src/omnplay.h

index 8213402..801cbaa 100644 (file)
@@ -1241,24 +1241,19 @@ void omnplay_init(omnplay_instance_t* app)
 
     /* create lock */
     pthread_mutex_init(&app->players.lock, &attr);
+    pthread_mutex_init(&app->playlist.lock, &attr);
+    pthread_mutex_init(&app->library.lock, &attr);
 
     /* create a omneon status thread */
     for(i = 0; i < app->players.count; i++)
-        pthread_create(&app->players.item[i].thread, NULL,
-            omnplay_thread_proc, &app->players.item[i]);
-
-
-    /* create lock */
-    pthread_mutex_init(&app->playlist.lock, &attr);
+        app->players.item[i].thread = g_thread_create(
+            omnplay_thread_proc, &app->players.item[i], TRUE, NULL);
 
     /* attach buttons click */
     for(i = 1; i < BUTTON_LAST; i++)
         gtk_signal_connect(GTK_OBJECT(app->buttons[i]), "clicked",
             GTK_SIGNAL_FUNC( on_button_click), app );
 
-    /* create lock */
-    pthread_mutex_init(&app->library.lock, &attr);
-
     /* load library */
     omnplay_library_load(app);
 
@@ -1268,13 +1263,12 @@ void omnplay_init(omnplay_instance_t* app)
 void omnplay_release(omnplay_instance_t* app)
 {
     int i;
-    void* r;
 
     app->f_exit = 1;
 
     for(i = 0; i < app->players.count; i++)
         /* create a omneon status thread */
-        pthread_join(app->players.item[i].thread, &r);
+        g_thread_join(app->players.item[i].thread);
 
     /* destroy lock */
     pthread_mutex_destroy(&app->players.lock);
index e70d78b..de4e942 100644 (file)
@@ -117,7 +117,7 @@ typedef struct omnplay_player
     char name[PATH_MAX];
     char host[PATH_MAX];
     void* handle;
-    pthread_t thread;
+    GThread* thread;
     GtkWidget *label_status, *label_state, *label_tc_cur, *label_tc_rem, *label_clip;
     struct omnplay_instance *app;
     int playlist_start;