[beast: 59/95] BSE: use Rapicorn thread methods for thread name and setting priority
- From: Tim Janik <timj src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [beast: 59/95] BSE: use Rapicorn thread methods for thread name and setting priority
- Date: Mon, 25 Mar 2013 00:41:27 +0000 (UTC)
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]