[beast: 59/95] BSE: use Rapicorn thread methods for thread name and setting priority



commit 86206944ccdc4641a48d2d1f0d8bc5f144b50f92
Author: Tim Janik <timj gnu org>
Date:   Wed Mar 20 04:10:30 2013 +0100

    BSE: use Rapicorn thread methods for thread name and setting priority

 bse/bsemain.cc   |   18 ++++++------------
 bse/bsemain.hh   |    2 --
 bse/bseserver.cc |   11 +++++------
 3 files changed, 11 insertions(+), 20 deletions(-)
---
diff --git a/bse/bsemain.cc b/bse/bsemain.cc
index 56167d5..120f039 100644
--- a/bse/bsemain.cc
+++ b/bse/bsemain.cc
@@ -337,22 +337,14 @@ bse_main_loop (Rapicorn::AsyncBlockingQueue<int> *init_queue)
   init_queue->push ('B');       // signal completion to caller
   init_queue = NULL;            // completion invalidates init_queue
   // Bse Core Event Loop
-  do
+  while (true)                  // FIXME: missing exit handler
     {
       g_main_context_pending (bse_main_context);
       g_main_context_iteration (bse_main_context, TRUE);
     }
-  while (!sfi_thread_aborted ());
   Bse::TaskRegistry::remove (Rapicorn::ThisThread::thread_pid());
 }
-guint
-bse_main_getpid (void)
-{
-  if (bse_initialization_stage >= 2)
-    return sfi_thread_self_pid ();
-  else
-    return 0;
-}
+
 static gboolean
 core_thread_send_message_async (gpointer data)
 {
@@ -361,6 +353,7 @@ core_thread_send_message_async (gpointer data)
   bse_message_free (umsg);
   return FALSE;
 }
+
 /**
  * BSE log handler, suitable for sfi_msg_set_thread_handler().
  * This function is MT-safe and may be called from any thread.
@@ -407,11 +400,12 @@ bse_msg_handler (const char              *domain,
   umsg->config_check = g_strdup (checkmsg.c_str());
   umsg->janitor = NULL;
   g_free (umsg->process);
-  umsg->process = g_strdup (sfi_thread_get_name (NULL));
-  umsg->pid = sfi_thread_get_pid (NULL);
+  umsg->process = g_strdup (Rapicorn::ThisThread::name().c_str());
+  umsg->pid = Rapicorn::ThisThread::thread_pid();
   /* queue an idle handler in the BSE Core thread */
   bse_idle_next (core_thread_send_message_async, umsg);
 }
+
 void
 bse_message_setup_thread_handler (void)
 {
diff --git a/bse/bsemain.hh b/bse/bsemain.hh
index 7b64046..d4b3dc3 100644
--- a/bse/bsemain.hh
+++ b/bse/bsemain.hh
@@ -21,8 +21,6 @@ void          bse_init_inprocess      (gint           *argc,
 void           bse_init_test           (gint           *argc,
                                         gchar        ***argv,
                                         SfiInitValue    values[]);
-/* BSE thread pid (or 0) */
-guint           bse_main_getpid         (void);
 void            bse_main_wakeup         ();
 
 /* messaging */
diff --git a/bse/bseserver.cc b/bse/bseserver.cc
index 7dcd4ea..52e65aa 100644
--- a/bse/bseserver.cc
+++ b/bse/bseserver.cc
@@ -1000,12 +1000,11 @@ engine_init (BseServer *server,
   g_source_set_priority (server->engine_source, BSE_PRIORITY_HIGH);
   if (!engine_is_initialized)
     {
-      guint mypid = bse_main_getpid();
-      int current_priority;
-      engine_is_initialized = TRUE;
-      bse_engine_init (TRUE);
-      /* lower priorities compared to engine if our priority range permits */
-      current_priority = getpriority (PRIO_PROCESS, mypid);
+      engine_is_initialized = true;
+      bse_engine_init (true);
+      // lower priority compared to engine if our priority range permits
+      const int mypid = Rapicorn::ThisThread::thread_pid();
+      int current_priority = getpriority (PRIO_PROCESS, mypid);
       if (current_priority <= -2 && mypid)
         setpriority (PRIO_PROCESS, mypid, current_priority + 1);
     }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]