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 / * P r o t o t y p e s w h e n u s i n g t h r _ a l a r m l i b r a r y f u n c t i o n s * / 00024 00025 # i f n d e f _ t h r _ a l a r m _ h 00026 00027 # d e f i n e _ t h r _ a l a r m _ h 00028 00029 # i f d e f _ _ c p l u s p l u s 00030 00031 e x t e r n " C " { 00032 00033 # e n d i f 00034 00035 # i f n d e f U S E _ A L A R M _ T H R E A D 00036 00037 # d e f i n e U S E _ O N E _ S I G N A L _ H A N D / * O n e m u s t c a l l p r o c e s s _ a l a r m * / 00038 00039 # e n d i f 00040 00041 # i f d e f H A V E _ r t s _ t h r e a d s 00042 00043 # u n d e f U S E _ O N E _ S I G N A L _ H A N D 00044 00045 # d e f i n e U S E _ A L A R M _ T H R E A D 00046 00047 # d e f i n e T H R _ S E R V E R _ A L A R M S I G U S R 1 00048 00049 # e l s e 00050 00051 # d e f i n e T H R _ S E R V E R _ A L A R M S I G A L R M 00052 00053 # e n d i f 00054 00055 t y p e d e f s t r u c t s t _ a l a r m _ i n f o 00056 00057 { 00058 00059 u l o n g n e x t _ a l a r m _ t i m e ; 00060 00061 u i n t a c t i v e _ a l a r m s ; 00062 00063 u i n t m a x _ u s e d _ a l a r m s ; 00064 00065 } A L A R M _ I N F O ; 00066 00067 v o i d t h r _ a l a r m _ i n f o ( A L A R M _ I N F O * i n f o ) ; 00068 00069 # i f d e f i n e d ( D O N T _ U S E _ T H R _ A L A R M ) | | ! d e f i n e d ( T H R E A D ) 00070 00071 # d e f i n e U S E _ A L A R M _ T H R E A D 00072 00073 # u n d e f U S E _ O N E _ S I G N A L _ H A N D 00074 00075 t y p e d e f m y _ b o o l t h r _ a l a r m _ t ; 00076 00077 t y p e d e f m y _ b o o l A L A R M ; 00078 00079 # d e f i n e t h r _ a l a r m _ i n i t ( A ) ( * ( A ) ) = 0 00080 00081 # d e f i n e t h r _ a l a r m _ i n _ u s e ( A ) ( * ( A ) ! = 0 ) 00082 00083 # d e f i n e t h r _ e n d _ a l a r m ( A ) 00084 00085 # d e f i n e t h r _ a l a r m ( A , B , C ) ( ( * ( A ) = 1 ) - 1 ) 00086 00087 / * T h e f o l l o w i n g s h o u l d m a y b e b e ( * ( A ) ) * / 00088 00089 # d e f i n e t h r _ g o t _ a l a r m ( A ) 0 00090 00091 # d e f i n e i n i t _ t h r _ a l a r m ( A ) 00092 00093 # d e f i n e t h r _ a l a r m _ k i l l ( A ) 00094 00095 # d e f i n e r e s i z e _ t h r _ a l a r m ( N ) 00096 00097 # d e f i n e e n d _ t h r _ a l a r m ( A ) 00098 00099 # e l s e 00100 00101 # i f d e f i n e d ( _ _ W I N _ _ ) 00102 00103 t y p e d e f s t r u c t s t _ t h r _ a l a r m _ e n t r y 00104 00105 { 00106 00107 r f _ S e t T i m e r c r o n o ; 00108 00109 } t h r _ a l a r m _ e n t r y ; 00110 00111 # e l s e / * S y s t e m w i t h p o s i x t h r e a d s * / 00112 00113 t y p e d e f i n t t h r _ a l a r m _ e n t r y ; 00114 00115 # d e f i n e t h r _ g o t _ a l a r m ( t h r _ a l a r m ) ( * * ( t h r _ a l a r m ) ) 00116 00117 # e n d i f / * _ _ W I N _ _ * / 00118 00119 t y p e d e f t h r _ a l a r m _ e n t r y * t h r _ a l a r m _ t ; 00120 00121 t y p e d e f s t r u c t s t _ a l a r m { 00122 00123 u l o n g e x p i r e _ t i m e ; 00124 00125 t h r _ a l a r m _ e n t r y a l a r m e d ; / * s e t w h e n a l a r m i s d u e * / 00126 00127 p t h r e a d _ t t h r e a d ; 00128 00129 m y _ t h r e a d _ i d t h r e a d _ i d ; 00130 00131 m y _ b o o l m a l l o c e d ; 00132 00133 } A L A R M ; 00134 00135 e x t e r n u i n t t h r _ c l i e n t _ a l a r m ; 00136 00137 e x t e r n p t h r e a d _ t a l a r m _ t h r e a d ; 00138 00139 # d e f i n e t h r _ a l a r m _ i n i t ( A ) ( * ( A ) ) = 0 00140 00141 # d e f i n e t h r _ a l a r m _ i n _ u s e ( A ) ( * ( A ) ! = 0 ) 00142 00143 v o i d i n i t _ t h r _ a l a r m ( u i n t m a x _ a l a r m ) ; 00144 00145 v o i d r e s i z e _ t h r _ a l a r m ( u i n t m a x _ a l a r m s ) ; 00146 00147 m y _ b o o l t h r _ a l a r m ( t h r _ a l a r m _ t * a l a r m e d , u i n t s e c , A L A R M * b u f f ) ; 00148 00149 v o i d t h r _ a l a r m _ k i l l ( m y _ t h r e a d _ i d t h r e a d _ i d ) ; 00150 00151 v o i d t h r _ e n d _ a l a r m ( t h r _ a l a r m _ t * a l a r m e d ) ; 00152 00153 v o i d e n d _ t h r _ a l a r m ( m y _ b o o l f r e e _ s t r u c t u r e s ) ; 00154 00155 s i g _ h a n d l e r p r o c e s s _ a l a r m ( i n t ) ; 00156 00157 # i f n d e f t h r _ g o t _ a l a r m 00158 00159 m y _ b o o l t h r _ g o t _ a l a r m ( t h r _ a l a r m _ t * a l r m ) ; 00160 00161 # e n d i f 00162 00163 00164 00165 # e n d i f / * D O N T _ U S E _ T H R _ A L A R M * / 00166 00167 # i f d e f _ _ c p l u s p l u s 00168 00169 } 00170 00171 # e n d i f / * _ _ c p l u s p l u s * / 00172 00173 # e n d i f / * _ t h r _ a l a r m _ h * / 00174 00175