X-Git-Url: http://git.harvie.cz/?a=blobdiff_plain;ds=sidebyside;f=c%2Fpthread_pause.c;h=90282a201f2ec96295c1f2e5461128a31bf6e055;hb=128ba9ae44b6757a55af6d7fbc952ce925ecf69f;hp=7d6ed6af01a57daef4c91d417ef3eb08df15dc04;hpb=9b4be8e8c190f7734a7611c2f354e2616e0f2c2f;p=mirrors%2FPrograms.git diff --git a/c/pthread_pause.c b/c/pthread_pause.c index 7d6ed6a..90282a2 100644 --- a/c/pthread_pause.c +++ b/c/pthread_pause.c @@ -20,6 +20,8 @@ #define PTHREAD_XSIG_CONT (SIGRTMIN+1) #define PTHREAD_XSIGRTMIN (SIGRTMIN+2) //First unused RT signal +pthread_t main_thread; + void pthread_pause_handler(int signal) { //Do nothing when there are more signals pending (to cleanup the queue) sigset_t pending; @@ -94,11 +96,14 @@ void *thread_test() { pthread_pause_disable(); printf("Running!\n"); pthread_pause_enable(); + //pthread_pause(main_thread); + //pthread_unpause(main_thread); } } int main() { pthread_t t; + main_thread = pthread_self(); pthread_pause_enable(); //Will get inherited by all threads from now on //you need to call pthread_pause_enable (or disable) before creating threads, //otherwise first signal will kill whole process