CMGDK r49-rc2
|
00001 / * C o p y r i g h t ( C ) 2 0 0 0 M y S Q L A B 00002 00003 T h i s p r o g r a m i s f r e e s o f t w a r e ; y o u c a n r e d i s t r i b u t e i t a n d / o r m o d i f y 00004 00005 i t u n d e r t h e t e r m s o f t h e G N U G e n e r a l P u b l i c L i c e n s e a s p u b l i s h e d b y 00006 00007 t h e F r e e S o f t w a r e F o u n d a t i o n ; v e r s i o n 2 o f t h e L i c e n s e . 00008 00009 T h i s p r o g r a m i s d i s t r i b u t e d i n t h e h o p e t h a t i t w i l l b e u s e f u l , 00010 00011 b u t W I T H O U T A N Y W A R R A N T Y ; w i t h o u t e v e n t h e i m p l i e d w a r r a n t y o f 00012 00013 M E R C H A N T A B I L I T Y o r F I T N E S S F O R A P A R T I C U L A R P U R P O S E . S e e t h e 00014 00015 G N U G e n e r a l P u b l i c L i c e n s e f o r m o r e d e t a i l s . 00016 00017 Y o u s h o u l d h a v e r e c e i v e d a c o p y o f t h e G N U G e n e r a l P u b l i c L i c e n s e 00018 00019 a l o n g w i t h t h i s p r o g r a m ; i f n o t , w r i t e t o t h e F r e e S o f t w a r e 00020 00021 F o u n d a t i o n , I n c . , 5 9 T e m p l e P l a c e , S u i t e 3 3 0 , B o s t o n , M A 0 2 1 1 1 - 1 3 0 7 U S A * / 00022 00023 / * 00024 00025 F i l e t o i n c l u d e w h e n w e w a n t t o u s e a l a r m o r a l o o p _ c o u n t e r t o d i s p l a y 00026 00027 s o m e i n f o r m a t i o n w h e n a p r o g r a m i s r u n n i n g 00028 00029 * / 00030 00031 # i f n d e f _ m y _ a l a r m _ h 00032 00033 # d e f i n e _ m y _ a l a r m _ h 00034 00035 # i f d e f _ _ c p l u s p l u s 00036 00037 e x t e r n " C " { 00038 00039 # e n d i f 00040 00041 e x t e r n i n t v o l a t i l e m y _ h a v e _ g o t _ a l a r m ; 00042 00043 e x t e r n u l o n g m y _ t i m e _ t o _ w a i t _ f o r _ l o c k ; 00044 00045 # i f d e f i n e d ( H A V E _ A L A R M ) & & ! d e f i n e d ( N O _ A L A R M _ L O O P ) 00046 00047 # i n c l u d e < s i g n a l . h > 00048 00049 # d e f i n e A L A R M _ V A R I A B L E S u i n t a l a r m _ o l d = 0 ; \ 00050 00051 s i g _ r e t u r n a l a r m _ s i g n a l = 0 00052 00053 # d e f i n e A L A R M _ I N I T m y _ h a v e _ g o t _ a l a r m = 0 ; \ 00054 00055 a l a r m _ o l d = ( u i n t ) a l a r m ( M Y _ H O W _ O F T E N _ T O _ A L A R M ) ; \ 00056 00057 a l a r m _ s i g n a l = s i g n a l ( S I G A L R M , m y _ s e t _ a l a r m _ v a r i a b l e ) ; 00058 00059 # d e f i n e A L A R M _ E N D ( v o i d ) s i g n a l ( S I G A L R M , a l a r m _ s i g n a l ) ; \ 00060 00061 ( v o i d ) a l a r m ( a l a r m _ o l d ) ; 00062 00063 # d e f i n e A L A R M _ T E S T m y _ h a v e _ g o t _ a l a r m 00064 00065 # i f d e f D O N T _ R E M E M B E R _ S I G N A L 00066 00067 # d e f i n e A L A R M _ R E I N I T ( v o i d ) a l a r m ( M Y _ H O W _ O F T E N _ T O _ A L A R M ) ; \ 00068 00069 ( v o i d ) s i g n a l ( S I G A L R M , m y _ s e t _ a l a r m _ v a r i a b l e ) ; \ 00070 00071 m y _ h a v e _ g o t _ a l a r m = 0 ; 00072 00073 # e l s e 00074 00075 # d e f i n e A L A R M _ R E I N I T ( v o i d ) a l a r m ( ( u i n t ) M Y _ H O W _ O F T E N _ T O _ A L A R M ) ; \ 00076 00077 m y _ h a v e _ g o t _ a l a r m = 0 ; 00078 00079 # e n d i f / * D O N T _ R E M E M B E R _ S I G N A L * / 00080 00081 # e l s e 00082 00083 # d e f i n e A L A R M _ V A R I A B L E S l o n g a l a r m _ p o s = 0 , a l a r m _ e n d _ p o s = M Y _ H O W _ O F T E N _ T O _ W R I T E - 1 00084 00085 # d e f i n e A L A R M _ I N I T 00086 00087 # d e f i n e A L A R M _ E N D 00088 00089 # d e f i n e A L A R M _ T E S T ( a l a r m _ p o s + + > = a l a r m _ e n d _ p o s ) 00090 00091 # d e f i n e A L A R M _ R E I N I T a l a r m _ e n d _ p o s + = M Y _ H O W _ O F T E N _ T O _ W R I T E 00092 00093 # e n d i f / * H A V E _ A L A R M * / 00094 00095 # i f d e f _ _ c p l u s p l u s 00096 00097 } 00098 00099 # e n d i f 00100 00101 # e n d i f 00102 00103