Reliable signals in native AIX

ITEM: RTA000070826



                                                                                
My customer uses BSD ( define and linking with libbsd.a ) to achieve            
reliable signal handling at blocking. How is native AIX implemented             
( without BSD)??? Are the signals then reliably queued at blocking ????         
POSIX standard only states that AT LEAST ONE signal should be                   
delivered after unblocking. What happens to my customer if he drops             
BSD linking ?? Where is this documented ?? It can of course easily              
be tested but I need a firm reference before recommending either                
to the customer.                                                                
                                                                                
                                                                                
ANSWER                                                                          
The standard AIX implementation uses 'sigprocmask' subroutine to block          
signals & 'sigaction' subroutine to define program action upon receiving        
a signal.  AIX supports an extensive set of process subroutines which          
are documented in the InfoExplorer "List of Process Subroutines".  Some         
of the routines are designed for signal control.                                
                                                                                
If your customer drops BSD linking, he may have to change his code to use       
subroutines supported in libc.a instead of libbsd.a.  I did notice that         
some of the BSD signal subroutines are included in libc.a.  To determine        
if your customer's routines fall in this category, you should refer to          
InfoExplorer.                                                                   
                                                                                
On the issue of queuing reliably at blocking, I am not sure exactly what        
you mean by this.  Are you asking, "Is there a way to process a blocked         
signal once the block is lifted?".  If you could be more descriptive in         
what you are trying to accomplish, it will allow me to more accurately          
address you question.  Some additional information that would be helpful:       
                                                                               
1) What level of AIX are you running?                                           
2) What compiler and what version of that compiler are you using?  I            
    have assumed in my response that you are using C.  Is this correct?         
3) What function of BSD are you looking for in standard AIX in regards to       
    signal handling?  If you could describe how you are handling signals        
    in BSD and how you expect it to work, I may be able to determine the        
    analog to this in AIX.                                                      
4) If you could provide a short segment of example code that illustrate         
    the function you are trying to implement, it may also be helpful.           
    Include all necessary instructions for me to recreate the situation.        
5) Please feel free to provide any addition information.  I am trying           
   to understand the question so I can recreate & test the functionality        
   you desire.  The more specific information you provide, the more             
   precisely I can answer your question.                                        
                                                                               
Note: our group provides HOWTO support.  We do not have the resources           
to provide extensive programming support. We do not provide assistance in       
areas of program design or debugging.  What I can provide is information        
on how AIX and subroutines in AIX work.                                         
                                                                                
S e a r c h - k e y w o r d s:                                                  
BSD SIGNAL HANDLING LIBBSD.A LINKING BLOCKING                                   
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                               


WWQA: ITEM: RTA000070826 ITEM: RTA000070826
Dated: 05/1996 Category: ITSAI6000GE
This HTML file was generated 2000/11/30~13:34:02
Comments or suggestions? Contact us