summaryrefslogtreecommitdiff
path: root/net/openh323/files/patch-aa
blob: ff2796c03099143e253e8e7cd4f69f300aca5fac (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
*** ../pwlib/src/ptlib/unix/tlibthrd.cxx.orig	Sun Nov 12 08:22:06 2000
--- ../pwlib/src/ptlib/unix/tlibthrd.cxx	Sun Nov 12 08:22:17 2000
*************** static void sigSuspendHandler(int)
*** 261,266 ****
--- 261,273 ----
  }
  
  
+ static void sigResumeHandler(int)
+ {
+   // do nothing. This is here so the 'signal' is consumed
+   // and stops the application terminating with "User signal 2"
+ }
+ 
+ 
  void HouseKeepingThread::Main()
  {
    PProcess & process = PProcess::Current();
*************** void * PThread::PX_ThreadStart(void * ar
*** 437,446 ****
    }
  
    // set the signal handler for SUSPEND_SIG
!   struct sigaction action;
!   memset(&action, 0, sizeof(action));
!   action.sa_handler = sigSuspendHandler;
!   sigaction(SUSPEND_SIG, &action, 0);
  
    // now call the the thread main routine
    //PTRACE(1, "tlibthrd\tAbout to call Main");
--- 444,453 ----
    }
  
    // set the signal handler for SUSPEND_SIG
!   struct sigaction suspend_action;
!   memset(&suspend_action, 0, sizeof(suspend_action));
!   suspend_action.sa_handler = sigSuspendHandler;
!   sigaction(SUSPEND_SIG, &suspend_action, 0);
  
    // now call the the thread main routine
    //PTRACE(1, "tlibthrd\tAbout to call Main");
*************** void PThread::Suspend(BOOL susp)
*** 559,564 ****
--- 566,578 ----
  {
    PAssertOS(pthread_mutex_lock(&PX_suspendMutex) == 0);
    BOOL unlock = TRUE;
+ 
+ #if defined(P_FREEBSD)
+   struct sigaction resume_action;
+   memset(&resume_action, 0, sizeof(resume_action));
+   resume_action.sa_handler = sigResumeHandler;
+   sigaction(RESUME_SIG, &resume_action, 0);
+ #endif
  
    if (pthread_kill(PX_threadId, 0) == 0) {