Linux.com

suspend other posix thread(s)

Link to this post 11 Sep 13

I just got this fancy application called `ags` see sourceforge.net/p/ags

During compilation I get the following error:

ags-ags_thread.o: In function `ags_thread_real_timelock':
/home/joel/ags-code/./src/ags/thread/ags_thread.c:1620: undefined reference to `pthread_suspend'
/home/joel/ags-code/./src/ags/thread/ags_thread.c:1660: undefined reference to `pthread_resume'

because the listed functions don't exist on debian GNU/Linux. How can I install the pthread library that provides those functions ...

Link to this post 12 Sep 13

Now I write a module that uses pth instead of pthread library.

Link to this post 14 Jul

The code looks like following:


void
ags_thread_suspend_handler(int sig)
{
#ifdef AGS_DEBUG
g_message("thread suspend\0");
#endif

if(ags_thread_self == NULL)
return;

if ((AGS_THREAD_SUSPENDED & (g_atomic_int_get(&(ags_thread_self->flags)))) != 0) return;

g_atomic_int_or(&(ags_thread_self->flags),
AGS_THREAD_SUSPENDED);

ags_thread_suspend(ags_thread_self);

do sigsuspend(&(ags_thread_self->wait_mask)); while ((AGS_THREAD_SUSPENDED & (g_atomic_int_get(&(ags_thread_self->flags)))) != 0);
}

And is triggered like this:


pthread_kill(thread_id, AGS_THREAD_RESUME_SIG);

Who we are ?

The Linux Foundation is a non-profit consortium dedicated to the growth of Linux.

More About the foundation...

Frequent Questions

Join / Linux Training / Board