pthread.ps   [plain text]


%!PS-Adobe-3.0
%%BoundingBox: (atend)
%%Pages: (atend)
%%PageOrder: (atend)
%%DocumentFonts: (atend)
%%Creator: Frame 4.0
%%DocumentData: Clean7Bit
%%EndComments
%%BeginProlog
%
% Frame ps_prolog 4.0, for use with Frame 4.0 products
% This ps_prolog file is Copyright (c) 1986-1993 Frame Technology
% Corporation.  All rights reserved.  This ps_prolog file may be
% freely copied and distributed in conjunction with documents created
% using FrameMaker, FrameBuilder and FrameViewer as long as this 
% copyright notice is preserved.
%
% Frame products normally print colors as their true color on a color printer
% or as shades of gray, based on luminance, on a black-and white printer. The
% following flag, if set to True, forces all non-white colors to print as pure
% black. This has no effect on bitmap images.
/FMPrintAllColorsAsBlack             false def
%
% Frame products can either set their own line screens or use a printer's 
% default settings. Three flags below control this separately for no 
% separations, spot separations and process separations. If a flag
% is true, then the default printer settings will not be changed. If it is
% false, Frame products will use their own settings from a table based on
% the printer's resolution.
/FMUseDefaultNoSeparationScreen      true  def
/FMUseDefaultSpotSeparationScreen    true  def
/FMUseDefaultProcessSeparationScreen false def
%
% For any given PostScript printer resolution, Frame products have two sets of 
% screen angles and frequencies for printing process separations, which are 
% recomended by Adobe. The following variable chooses the higher frequencies
% when set to true or the lower frequencies when set to false. This is only
% effective if the appropriate FMUseDefault...SeparationScreen flag is false.
/FMUseHighFrequencyScreens true def
%
% PostScript Level 2 printers contain an "Accurate Screens" feature which can
% improve process separation rendering at the expense of compute time. This 
% flag is ignored by PostScript Level 1 printers.
/FMUseAcccurateScreens true def
%
% The following PostScript procedure defines the spot function that Frame
% products will use for process separations. You may un-comment-out one of
% the alternative functions below, or use your own.
%
% Dot function
/FMSpotFunction {abs exch abs 2 copy add 1 gt 
		{1 sub dup mul exch 1 sub dup mul add 1 sub }
		{dup mul exch dup mul add 1 exch sub }ifelse } def
%
% Line function
% /FMSpotFunction { pop } def
%
% Elipse function
% /FMSpotFunction { dup 5 mul 8 div mul exch dup mul exch add 
%		sqrt 1 exch sub } def
%
%
/FMversion (4.0) def 
/FMLevel1 /languagelevel where {pop languagelevel} {1} ifelse 2 lt def
/FMPColor
	FMLevel1 {
		false
		/colorimage where {pop pop true} if
	} {
		true
	} ifelse
def
/FrameDict 400 dict def 
systemdict /errordict known not {/errordict 10 dict def
		errordict /rangecheck {stop} put} if
% The readline in PS 23.0 doesn't recognize cr's as nl's on AppleTalk
FrameDict /tmprangecheck errordict /rangecheck get put 
errordict /rangecheck {FrameDict /bug true put} put 
FrameDict /bug false put 
mark 
% Some PS machines read past the CR, so keep the following 3 lines together!
currentfile 5 string readline
00
0000000000
cleartomark 
errordict /rangecheck FrameDict /tmprangecheck get put 
FrameDict /bug get { 
	/readline {
		/gstring exch def
		/gfile exch def
		/gindex 0 def
		{
			gfile read pop 
			dup 10 eq {exit} if 
			dup 13 eq {exit} if 
			gstring exch gindex exch put 
			/gindex gindex 1 add def 
		} loop
		pop 
		gstring 0 gindex getinterval true 
		} bind def
	} if
/FMshowpage /showpage load def
/FMquit /quit load def
/FMFAILURE { 
	dup = flush 
	FMshowpage 
	/Helvetica findfont 12 scalefont setfont
	72 200 moveto
	show FMshowpage 
	FMquit 
	} def 
/FMVERSION {
	FMversion ne {
		(Frame product version does not match ps_prolog!) FMFAILURE
		} if
	} def 
/FMBADEPSF { 
	(PostScript Lang. Ref. Man., 2nd Ed., H.2.4 says EPS must not call X              )
	dup dup (X) search pop exch pop exch pop length 
	4 -1 roll 
	putinterval 
	FMFAILURE
	} def
/FMLOCAL {
	FrameDict begin
	0 def 
	end 
	} def 
/concatprocs
	{
	/proc2 exch cvlit def/proc1 exch cvlit def/newproc proc1 length proc2 length add array def
	newproc 0 proc1 putinterval newproc proc1 length proc2 putinterval newproc cvx
}def
FrameDict begin 
/FMnone 0 def
/FMcyan 1 def
/FMmagenta 2 def
/FMyellow 3 def
/FMblack 4 def
/FMcustom 5 def
/FrameNegative false def 
/FrameSepIs FMnone def 
/FrameSepBlack 0 def
/FrameSepYellow 0 def
/FrameSepMagenta 0 def
/FrameSepCyan 0 def
/FrameSepRed 1 def
/FrameSepGreen 1 def
/FrameSepBlue 1 def
/FrameCurGray 1 def
/FrameCurPat null def
/FrameCurColors [ 0 0 0 1 0 0 0 ] def 
/FrameColorEpsilon .001 def	
/eqepsilon {		
	sub dup 0 lt {neg} if
	FrameColorEpsilon le
} bind def
/FrameCmpColorsCMYK { 
	2 copy 0 get exch 0 get eqepsilon {
		2 copy 1 get exch 1 get eqepsilon {
			2 copy 2 get exch 2 get eqepsilon {
				3 get exch 3 get eqepsilon
			} {pop pop false} ifelse
		}{pop pop false} ifelse
	} {pop pop false} ifelse
} bind def
/FrameCmpColorsRGB { 
	2 copy 4 get exch 0 get eqepsilon {
		2 copy 5 get exch 1 get eqepsilon {
			6 get exch 2 get eqepsilon
		}{pop pop false} ifelse
	} {pop pop false} ifelse
} bind def
/RGBtoCMYK { 
	1 exch sub 
	3 1 roll 
	1 exch sub 
	3 1 roll 
	1 exch sub 
	3 1 roll 
	3 copy 
	2 copy 
	le { pop } { exch pop } ifelse 
	2 copy 
	le { pop } { exch pop } ifelse 
	dup dup dup 
	6 1 roll 
	4 1 roll 
	7 1 roll 
	sub 
	6 1 roll 
	sub 
	5 1 roll 
	sub 
	4 1 roll 
} bind def
/CMYKtoRGB { 
	dup dup 4 -1 roll add 						  
	5 1 roll 3 -1 roll add 						  
	4 1 roll add 								  
	1 exch sub dup 0 lt {pop 0} if 3 1 roll 	  
	1 exch sub dup 0 lt {pop 0} if exch 	      
	1 exch sub dup 0 lt {pop 0} if exch	  		  
} bind def
/FrameSepInit {
	1.0 RealSetgray
} bind def
/FrameSetSepColor { 
	/FrameSepBlue exch def
	/FrameSepGreen exch def
	/FrameSepRed exch def
	/FrameSepBlack exch def
	/FrameSepYellow exch def
	/FrameSepMagenta exch def
	/FrameSepCyan exch def
	/FrameSepIs FMcustom def
	setCurrentScreen	
} bind def
/FrameSetCyan {
	/FrameSepBlue 1.0 def
	/FrameSepGreen 1.0 def
	/FrameSepRed 0.0 def
	/FrameSepBlack 0.0 def
	/FrameSepYellow 0.0 def
	/FrameSepMagenta 0.0 def
	/FrameSepCyan 1.0 def
	/FrameSepIs FMcyan def
	setCurrentScreen	
} bind def
 
/FrameSetMagenta {
	/FrameSepBlue 1.0 def
	/FrameSepGreen 0.0 def
	/FrameSepRed 1.0 def
	/FrameSepBlack 0.0 def
	/FrameSepYellow 0.0 def
	/FrameSepMagenta 1.0 def
	/FrameSepCyan 0.0 def
	/FrameSepIs FMmagenta def
	setCurrentScreen
} bind def
 
/FrameSetYellow {
	/FrameSepBlue 0.0 def
	/FrameSepGreen 1.0 def
	/FrameSepRed 1.0 def
	/FrameSepBlack 0.0 def
	/FrameSepYellow 1.0 def
	/FrameSepMagenta 0.0 def
	/FrameSepCyan 0.0 def
	/FrameSepIs FMyellow def
	setCurrentScreen
} bind def
 
/FrameSetBlack {
	/FrameSepBlue 0.0 def
	/FrameSepGreen 0.0 def
	/FrameSepRed 0.0 def
	/FrameSepBlack 1.0 def
	/FrameSepYellow 0.0 def
	/FrameSepMagenta 0.0 def
	/FrameSepCyan 0.0 def
	/FrameSepIs FMblack def
	setCurrentScreen
} bind def
 
/FrameNoSep { 
	/FrameSepIs FMnone def
	setCurrentScreen
} bind def
/FrameSetSepColors { 
	FrameDict begin
	[ exch 1 add 1 roll ]
	/FrameSepColors  
	exch def end
	} bind def
/FrameColorInSepListCMYK { 
	FrameSepColors {  
       		exch dup 3 -1 roll 
       		FrameCmpColorsCMYK 
       		{ pop true exit } if
    	} forall 
	dup true ne {pop false} if
	} bind def
/FrameColorInSepListRGB { 
	FrameSepColors {  
       		exch dup 3 -1 roll 
       		FrameCmpColorsRGB 
       		{ pop true exit } if
    	} forall 
	dup true ne {pop false} if
	} bind def
/RealSetgray /setgray load def
/RealSetrgbcolor /setrgbcolor load def
/RealSethsbcolor /sethsbcolor load def
end 
/setgray { 
	FrameDict begin
	FrameSepIs FMnone eq
		{ RealSetgray } 
		{ 
		FrameSepIs FMblack eq 
			{ RealSetgray } 
			{ FrameSepIs FMcustom eq 
			  FrameSepRed 0 eq and
			  FrameSepGreen 0 eq and
			  FrameSepBlue 0 eq and {
			  	RealSetgray
			  } {
				1 RealSetgray pop 
			  } ifelse
			} ifelse
		} ifelse
	end
} bind def
/setrgbcolor { 
	FrameDict begin
	FrameSepIs FMnone eq
	{  RealSetrgbcolor }
	{
		3 copy [ 4 1 roll ] 
		FrameColorInSepListRGB
		{
				FrameSepBlue eq exch 
			 	FrameSepGreen eq and exch 
			 	FrameSepRed eq and
			 	{ 0 } { 1 } ifelse
		}
		{
			FMPColor {
				RealSetrgbcolor
				currentcmykcolor
			} {
				RGBtoCMYK
			} ifelse
			FrameSepIs FMblack eq
			{1.0 exch sub 4 1 roll pop pop pop} {
			FrameSepIs FMyellow eq
			{pop 1.0 exch sub 3 1 roll pop pop} {
			FrameSepIs FMmagenta eq
			{pop pop 1.0 exch sub exch pop } {
			FrameSepIs FMcyan eq
			{pop pop pop 1.0 exch sub } 
			{pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse 
		} ifelse
		RealSetgray
	} 
	ifelse
	end
} bind def
/sethsbcolor {
	FrameDict begin
	FrameSepIs FMnone eq 
	{ RealSethsbcolor } 
	{
		RealSethsbcolor 
		currentrgbcolor  
		setrgbcolor 
	} 
	ifelse
	end
} bind def
FrameDict begin
/setcmykcolor where {
	pop /RealSetcmykcolor /setcmykcolor load def
} {
	/RealSetcmykcolor {
		4 1 roll
		3 { 3 index add 0 max 1 min 1 exch sub 3 1 roll} repeat 
		setrgbcolor pop
	} bind def
} ifelse
userdict /setcmykcolor { 
		FrameDict begin
		FrameSepIs FMnone eq
		{ RealSetcmykcolor } 
		{
			4 copy [ 5 1 roll ]
			FrameColorInSepListCMYK
			{
				FrameSepBlack eq exch 
				FrameSepYellow eq and exch 
				FrameSepMagenta eq and exch 
				FrameSepCyan eq and 
				{ 0 } { 1 } ifelse
			}
			{
				FrameSepIs FMblack eq
				{1.0 exch sub 4 1 roll pop pop pop} {
				FrameSepIs FMyellow eq
				{pop 1.0 exch sub 3 1 roll pop pop} {
				FrameSepIs FMmagenta eq
				{pop pop 1.0 exch sub exch pop } {
				FrameSepIs FMcyan eq
				{pop pop pop 1.0 exch sub } 
				{pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse 
			} ifelse
			RealSetgray
		}
		ifelse
		end
	} bind put
FMLevel1 not { 
	
	/patProcDict 5 dict dup begin
		<0f1e3c78f0e1c387> { 3 setlinewidth -1 -1 moveto 9 9 lineto stroke 
											4 -4 moveto 12 4 lineto stroke
											-4 4 moveto 4 12 lineto stroke} bind def
		<0f87c3e1f0783c1e> { 3 setlinewidth -1 9 moveto 9 -1 lineto stroke 
											-4 4 moveto 4 -4 lineto stroke
											4 12 moveto 12 4 lineto stroke} bind def
		<8142241818244281> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke
											-1 -1 moveto 9 9 lineto stroke } bind def
		<03060c183060c081> { 1 setlinewidth -1 -1 moveto 9 9 lineto stroke 
											4 -4 moveto 12 4 lineto stroke
											-4 4 moveto 4 12 lineto stroke} bind def
		<8040201008040201> { 1 setlinewidth -1 9 moveto 9 -1 lineto stroke 
											-4 4 moveto 4 -4 lineto stroke
											4 12 moveto 12 4 lineto stroke} bind def
	end def
	/patDict 15 dict dup begin
		/PatternType 1 def		
		/PaintType 2 def		
		/TilingType 3 def		
		/BBox [ 0 0 8 8 ] def 	
		/XStep 8 def			
		/YStep 8 def			
		/PaintProc {
			begin
			patProcDict bstring known {
				patProcDict bstring get exec
			} {
				8 8 true [1 0 0 -1 0 8] bstring imagemask
			} ifelse
			end
		} bind def
	end def
} if
/combineColor {
    FrameSepIs FMnone eq
	{
		graymode FMLevel1 or not {
			
			[/Pattern [/DeviceCMYK]] setcolorspace
			FrameCurColors 0 4 getinterval aload pop FrameCurPat setcolor
		} {
			FrameCurColors 3 get 1.0 ge {
				FrameCurGray RealSetgray
			} {
				FMPColor graymode and {
					0 1 3 { 
						FrameCurColors exch get
						1 FrameCurGray sub mul
					} for
					RealSetcmykcolor
				} {
					4 1 6 {
						FrameCurColors exch get
						graymode {
							1 exch sub 1 FrameCurGray sub mul 1 exch sub
						} {
							1.0 lt {FrameCurGray} {1} ifelse
						} ifelse
					} for
					RealSetrgbcolor
				} ifelse
			} ifelse
		} ifelse
	} { 
		FrameCurColors 0 4 getinterval aload
		FrameColorInSepListCMYK {
			FrameSepBlack eq exch 
			FrameSepYellow eq and exch 
			FrameSepMagenta eq and exch 
			FrameSepCyan eq and
			FrameSepIs FMcustom eq and
			{ FrameCurGray } { 1 } ifelse
		} {
			FrameSepIs FMblack eq
			{FrameCurGray 1.0 exch sub mul 1.0 exch sub 4 1 roll pop pop pop} {
			FrameSepIs FMyellow eq
			{pop FrameCurGray 1.0 exch sub mul 1.0 exch sub 3 1 roll pop pop} {
			FrameSepIs FMmagenta eq
			{pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub exch pop } {
			FrameSepIs FMcyan eq
			{pop pop pop FrameCurGray 1.0 exch sub mul 1.0 exch sub } 
			{pop pop pop pop 1} ifelse } ifelse } ifelse } ifelse 
		} ifelse
		graymode FMLevel1 or not {
			
			[/Pattern [/DeviceGray]] setcolorspace
			FrameCurPat setcolor
		} { 
			graymode not FMLevel1 and {
				
				dup 1 lt {pop FrameCurGray} if
			} if
			RealSetgray
		} ifelse
	} ifelse
} bind def
/savematrix {
	orgmatrix currentmatrix pop
	} bind def
/restorematrix {
	orgmatrix setmatrix
	} bind def
/dmatrix matrix def
/dpi    72 0 dmatrix defaultmatrix dtransform
    dup mul exch   dup mul add   sqrt def
	
/freq dpi dup 72 div round dup 0 eq {pop 1} if 8 mul div def
/sangle 1 0 dmatrix defaultmatrix dtransform exch atan def
/dpiranges   [  2540    2400    1693     1270    1200     635      600      0      ] def
/CMLowFreqs  [ 100.402  94.8683 89.2289 100.402  94.8683  66.9349  63.2456 47.4342 ] def
/YLowFreqs   [  95.25   90.0    84.65    95.25   90.0     70.5556  66.6667 50.0    ] def
/KLowFreqs   [  89.8026 84.8528 79.8088  89.8026 84.8528  74.8355  70.7107 53.033  ] def
/CLowAngles  [  71.5651 71.5651 71.5651 71.5651  71.5651  71.5651  71.5651 71.5651 ] def
/MLowAngles  [  18.4349 18.4349 18.4349 18.4349  18.4349  18.4349  18.4349 18.4349 ] def
/YLowTDot    [  true    true    false    true    true     false    false   false   ] def
/CMHighFreqs [ 133.87  126.491 133.843  108.503 102.523  100.402   94.8683 63.2456 ] def
/YHighFreqs  [ 127.0   120.0   126.975  115.455 109.091   95.25    90.0    60.0    ] def
/KHighFreqs  [ 119.737 113.137 119.713  128.289 121.218   89.8026  84.8528 63.6395 ] def
/CHighAngles [  71.5651 71.5651 71.5651  70.0169 70.0169  71.5651  71.5651 71.5651 ] def
/MHighAngles [  18.4349 18.4349 18.4349  19.9831 19.9831  18.4349  18.4349 18.4349 ] def
/YHighTDot   [  false   false   true     false   false    true     true    false   ] def
/PatFreq     [	10.5833 10.0     9.4055  10.5833 10.0	  10.5833  10.0	   9.375   ] def
/screenIndex {
	0 1 dpiranges length 1 sub { dup dpiranges exch get 1 sub dpi le {exit} {pop} ifelse } for
} bind def
/getCyanScreen {
	FMUseHighFrequencyScreens { CHighAngles CMHighFreqs} {CLowAngles CMLowFreqs} ifelse
		screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load
} bind def
/getMagentaScreen {
	FMUseHighFrequencyScreens { MHighAngles CMHighFreqs } {MLowAngles CMLowFreqs} ifelse
		screenIndex dup 3 1 roll get 3 1 roll get /FMSpotFunction load
} bind def
/getYellowScreen {
	FMUseHighFrequencyScreens { YHighTDot YHighFreqs} { YLowTDot YLowFreqs } ifelse
		screenIndex dup 3 1 roll get 3 1 roll get { 3 div
			{2 { 1 add 2 div 3 mul dup floor sub 2 mul 1 sub exch} repeat
			FMSpotFunction } } {/FMSpotFunction load } ifelse
			0.0 exch
} bind def
/getBlackScreen  {
	FMUseHighFrequencyScreens { KHighFreqs } { KLowFreqs } ifelse
		screenIndex get 45.0 /FMSpotFunction load 
} bind def
/getSpotScreen {
	getBlackScreen
} bind def
/getCompositeScreen {
	getBlackScreen
} bind def
/FMSetScreen 
	FMLevel1 { /setscreen load 
	}{ {
		8 dict begin
		/HalftoneType 1 def
		/SpotFunction exch def
		/Angle exch def
		/Frequency exch def
		/AccurateScreens FMUseAcccurateScreens def
		currentdict end sethalftone
	} bind } ifelse
def
/setDefaultScreen {
	FMPColor {
		orgrxfer cvx orggxfer cvx orgbxfer cvx orgxfer cvx setcolortransfer
	}
	{
		orgxfer cvx settransfer
	} ifelse
	orgfreq organgle orgproc cvx setscreen
} bind def
/setCurrentScreen {
	FrameSepIs FMnone eq {
		FMUseDefaultNoSeparationScreen {
			setDefaultScreen
		} {
			getCompositeScreen FMSetScreen
		} ifelse
	} {
		FrameSepIs FMcustom eq {
			FMUseDefaultSpotSeparationScreen {
				setDefaultScreen
			} {
				getSpotScreen FMSetScreen
			} ifelse
		} {
			FMUseDefaultProcessSeparationScreen {
				setDefaultScreen
			} {
				FrameSepIs FMcyan eq {
					getCyanScreen FMSetScreen
				} {
					FrameSepIs FMmagenta eq {
						getMagentaScreen FMSetScreen
					} {
						FrameSepIs FMyellow eq {
							getYellowScreen FMSetScreen
						} {
							getBlackScreen FMSetScreen
						} ifelse
					} ifelse
				} ifelse
			} ifelse
		} ifelse
	} ifelse 
} bind def
end
	/gstring FMLOCAL
	/gfile FMLOCAL
	/gindex FMLOCAL
	/orgrxfer FMLOCAL
	/orggxfer FMLOCAL
	/orgbxfer FMLOCAL
	/orgxfer FMLOCAL
	/orgproc FMLOCAL
	/orgrproc FMLOCAL
	/orggproc FMLOCAL
	/orgbproc FMLOCAL
	/organgle FMLOCAL
	/orgrangle FMLOCAL
	/orggangle FMLOCAL
	/orgbangle FMLOCAL
	/orgfreq FMLOCAL
	/orgrfreq FMLOCAL
	/orggfreq FMLOCAL
	/orgbfreq FMLOCAL
	/yscale FMLOCAL
	/xscale FMLOCAL
	/edown FMLOCAL
	/manualfeed FMLOCAL
	/paperheight FMLOCAL
	/paperwidth FMLOCAL
/FMDOCUMENT { 
	array /FMfonts exch def 
	/#copies exch def
	FrameDict begin
	0 ne /manualfeed exch def
	/paperheight exch def
	/paperwidth exch def
	0 ne /FrameNegative exch def 
	0 ne /edown exch def 
	/yscale exch def
	/xscale exch def
	FMLevel1 {
		manualfeed {setmanualfeed} if
		/FMdicttop countdictstack 1 add def 
		/FMoptop count def 
		setpapername 
		manualfeed {true} {papersize} ifelse 
		{manualpapersize} {false} ifelse 
		{desperatepapersize} {false} ifelse 
		{ (Can't select requested paper size for Frame print job!) FMFAILURE } if
		count -1 FMoptop {pop pop} for
		countdictstack -1 FMdicttop {pop end} for 
		}
		{{1 dict dup /PageSize [paperwidth paperheight]put setpagedevice}stopped
		{ (Can't select requested paper size for Frame print job!) FMFAILURE } if
		 {1 dict dup /ManualFeed manualfeed put setpagedevice } stopped pop }
	ifelse 
	
	FMPColor {
		currentcolorscreen
			cvlit /orgproc exch def
				  /organgle exch def 
				  /orgfreq exch def
			cvlit /orgbproc exch def
				  /orgbangle exch def 
				  /orgbfreq exch def
			cvlit /orggproc exch def
				  /orggangle exch def 
				  /orggfreq exch def
			cvlit /orgrproc exch def
				  /orgrangle exch def 
				  /orgrfreq exch def
			currentcolortransfer 
			FrameNegative {
				1 1 4 { 
					pop { 1 exch sub } concatprocs 4 1 roll
				} for
				4 copy
				setcolortransfer
			} if
			cvlit /orgxfer exch def
			cvlit /orgbxfer exch def
			cvlit /orggxfer exch def
			cvlit /orgrxfer exch def
	} {
		currentscreen 
			cvlit /orgproc exch def
				  /organgle exch def 
				  /orgfreq exch def
				  
		currenttransfer 
		FrameNegative {
			{ 1 exch sub } concatprocs
			dup settransfer
		} if 
		cvlit /orgxfer exch def
	} ifelse
	end 
} def 
/pagesave FMLOCAL
/orgmatrix FMLOCAL
/landscape FMLOCAL
/pwid FMLOCAL
/FMBEGINPAGE { 
	FrameDict begin 
	/pagesave save def
	3.86 setmiterlimit
	/landscape exch 0 ne def
	landscape { 
		90 rotate 0 exch dup /pwid exch def neg translate pop 
	}{
		pop /pwid exch def
	} ifelse
	edown { [-1 0 0 1 pwid 0] concat } if
	0 0 moveto paperwidth 0 lineto paperwidth paperheight lineto 
	0 paperheight lineto 0 0 lineto 1 setgray fill
	xscale yscale scale
	/orgmatrix matrix def
	gsave 
} def 
/FMENDPAGE {
	grestore 
	pagesave restore
	end 
	showpage
	} def 
/FMFONTDEFINE { 
	FrameDict begin
	findfont 
	ReEncode 
	1 index exch 
	definefont 
	FMfonts 3 1 roll 
	put
	end 
	} def 
/FMFILLS {
	FrameDict begin dup
	array /fillvals exch def
	dict /patCache exch def
	end 
	} def 
/FMFILL {
	FrameDict begin
	 fillvals 3 1 roll put
	end 
	} def 
/FMNORMALIZEGRAPHICS { 
	newpath
	0.0 0.0 moveto
	1 setlinewidth
	0 setlinecap
	0 0 0 sethsbcolor
	0 setgray 
	} bind def
	/fx FMLOCAL
	/fy FMLOCAL
	/fh FMLOCAL
	/fw FMLOCAL
	/llx FMLOCAL
	/lly FMLOCAL
	/urx FMLOCAL
	/ury FMLOCAL
/FMBEGINEPSF { 
	end 
	/FMEPSF save def 
	/showpage {} def 
% See Adobe's "PostScript Language Reference Manual, 2nd Edition", page 714.
% "...the following operators MUST NOT be used in an EPS file:" (emphasis ours)
	/banddevice {(banddevice) FMBADEPSF} def
	/clear {(clear) FMBADEPSF} def
	/cleardictstack {(cleardictstack) FMBADEPSF} def 
	/copypage {(copypage) FMBADEPSF} def
	/erasepage {(erasepage) FMBADEPSF} def
	/exitserver {(exitserver) FMBADEPSF} def
	/framedevice {(framedevice) FMBADEPSF} def
	/grestoreall {(grestoreall) FMBADEPSF} def
	/initclip {(initclip) FMBADEPSF} def
	/initgraphics {(initgraphics) FMBADEPSF} def
	/initmatrix {(initmatrix) FMBADEPSF} def
	/quit {(quit) FMBADEPSF} def
	/renderbands {(renderbands) FMBADEPSF} def
	/setglobal {(setglobal) FMBADEPSF} def
	/setpagedevice {(setpagedevice) FMBADEPSF} def
	/setshared {(setshared) FMBADEPSF} def
	/startjob {(startjob) FMBADEPSF} def
	/lettertray {(lettertray) FMBADEPSF} def
	/letter {(letter) FMBADEPSF} def
	/lettersmall {(lettersmall) FMBADEPSF} def
	/11x17tray {(11x17tray) FMBADEPSF} def
	/11x17 {(11x17) FMBADEPSF} def
	/ledgertray {(ledgertray) FMBADEPSF} def
	/ledger {(ledger) FMBADEPSF} def
	/legaltray {(legaltray) FMBADEPSF} def
	/legal {(legal) FMBADEPSF} def
	/statementtray {(statementtray) FMBADEPSF} def
	/statement {(statement) FMBADEPSF} def
	/executivetray {(executivetray) FMBADEPSF} def
	/executive {(executive) FMBADEPSF} def
	/a3tray {(a3tray) FMBADEPSF} def
	/a3 {(a3) FMBADEPSF} def
	/a4tray {(a4tray) FMBADEPSF} def
	/a4 {(a4) FMBADEPSF} def
	/a4small {(a4small) FMBADEPSF} def
	/b4tray {(b4tray) FMBADEPSF} def
	/b4 {(b4) FMBADEPSF} def
	/b5tray {(b5tray) FMBADEPSF} def
	/b5 {(b5) FMBADEPSF} def
	FMNORMALIZEGRAPHICS 
	[/fy /fx /fh /fw /ury /urx /lly /llx] {exch def} forall 
	fx fw 2 div add fy fh 2 div add  translate
	rotate
	fw 2 div neg fh 2 div neg translate
	fw urx llx sub div fh ury lly sub div scale 
	llx neg lly neg translate 
	/FMdicttop countdictstack 1 add def 
	/FMoptop count def 
	} bind def
/FMENDEPSF {
	count -1 FMoptop {pop pop} for 
	countdictstack -1 FMdicttop {pop end} for 
	FMEPSF restore
	FrameDict begin 
	} bind def
FrameDict begin 
/setmanualfeed {
%%BeginFeature *ManualFeed True
	 statusdict /manualfeed true put
%%EndFeature
	} bind def
/max {2 copy lt {exch} if pop} bind def
/min {2 copy gt {exch} if pop} bind def
/inch {72 mul} def
/pagedimen { 
	paperheight sub abs 16 lt exch 
	paperwidth sub abs 16 lt and
	{/papername exch def} {pop} ifelse
	} bind def
	/papersizedict FMLOCAL
/setpapername { 
	/papersizedict 14 dict def 
	papersizedict begin
	/papername /unknown def 
		/Letter 8.5 inch 11.0 inch pagedimen
		/LetterSmall 7.68 inch 10.16 inch pagedimen
		/Tabloid 11.0 inch 17.0 inch pagedimen
		/Ledger 17.0 inch 11.0 inch pagedimen
		/Legal 8.5 inch 14.0 inch pagedimen
		/Statement 5.5 inch 8.5 inch pagedimen
		/Executive 7.5 inch 10.0 inch pagedimen
		/A3 11.69 inch 16.5 inch pagedimen
		/A4 8.26 inch 11.69 inch pagedimen
		/A4Small 7.47 inch 10.85 inch pagedimen
		/B4 10.125 inch 14.33 inch pagedimen
		/B5 7.16 inch 10.125 inch pagedimen
	end
	} bind def
/papersize {
	papersizedict begin
		/Letter {lettertray letter} def
		/LetterSmall {lettertray lettersmall} def
		/Tabloid {11x17tray 11x17} def
		/Ledger {ledgertray ledger} def
		/Legal {legaltray legal} def
		/Statement {statementtray statement} def
		/Executive {executivetray executive} def
		/A3 {a3tray a3} def
		/A4 {a4tray a4} def
		/A4Small {a4tray a4small} def
		/B4 {b4tray b4} def
		/B5 {b5tray b5} def
		/unknown {unknown} def
	papersizedict dup papername known {papername} {/unknown} ifelse get
	end
	statusdict begin stopped end 
	} bind def
/manualpapersize {
	papersizedict begin
		/Letter {letter} def
		/LetterSmall {lettersmall} def
		/Tabloid {11x17} def
		/Ledger {ledger} def
		/Legal {legal} def
		/Statement {statement} def
		/Executive {executive} def
		/A3 {a3} def
		/A4 {a4} def
		/A4Small {a4small} def
		/B4 {b4} def
		/B5 {b5} def
		/unknown {unknown} def
	papersizedict dup papername known {papername} {/unknown} ifelse get
	end
	stopped 
	} bind def
/desperatepapersize {
	statusdict /setpageparams known
		{
		paperwidth paperheight 0 1 
		statusdict begin
		{setpageparams} stopped 
		end
		} {true} ifelse 
	} bind def
/DiacriticEncoding [
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/.notdef /.notdef /.notdef /.notdef /space /exclam /quotedbl
/numbersign /dollar /percent /ampersand /quotesingle /parenleft
/parenright /asterisk /plus /comma /hyphen /period /slash /zero /one
/two /three /four /five /six /seven /eight /nine /colon /semicolon
/less /equal /greater /question /at /A /B /C /D /E /F /G /H /I /J /K
/L /M /N /O /P /Q /R /S /T /U /V /W /X /Y /Z /bracketleft /backslash
/bracketright /asciicircum /underscore /grave /a /b /c /d /e /f /g /h
/i /j /k /l /m /n /o /p /q /r /s /t /u /v /w /x /y /z /braceleft /bar
/braceright /asciitilde /.notdef /Adieresis /Aring /Ccedilla /Eacute
/Ntilde /Odieresis /Udieresis /aacute /agrave /acircumflex /adieresis
/atilde /aring /ccedilla /eacute /egrave /ecircumflex /edieresis
/iacute /igrave /icircumflex /idieresis /ntilde /oacute /ograve
/ocircumflex /odieresis /otilde /uacute /ugrave /ucircumflex
/udieresis /dagger /.notdef /cent /sterling /section /bullet
/paragraph /germandbls /registered /copyright /trademark /acute
/dieresis /.notdef /AE /Oslash /.notdef /.notdef /.notdef /.notdef
/yen /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
/ordfeminine /ordmasculine /.notdef /ae /oslash /questiondown
/exclamdown /logicalnot /.notdef /florin /.notdef /.notdef
/guillemotleft /guillemotright /ellipsis /.notdef /Agrave /Atilde
/Otilde /OE /oe /endash /emdash /quotedblleft /quotedblright
/quoteleft /quoteright /.notdef /.notdef /ydieresis /Ydieresis
/fraction /currency /guilsinglleft /guilsinglright /fi /fl /daggerdbl
/periodcentered /quotesinglbase /quotedblbase /perthousand
/Acircumflex /Ecircumflex /Aacute /Edieresis /Egrave /Iacute
/Icircumflex /Idieresis /Igrave /Oacute /Ocircumflex /.notdef /Ograve
/Uacute /Ucircumflex /Ugrave /dotlessi /circumflex /tilde /macron
/breve /dotaccent /ring /cedilla /hungarumlaut /ogonek /caron
] def
/ReEncode { 
	dup 
	length 
	dict begin 
	{
	1 index /FID ne 
		{def} 
		{pop pop} ifelse 
	} forall 
	0 eq {/Encoding DiacriticEncoding def} if 
	currentdict 
	end 
	} bind def
FMPColor 
	
	{
	/BEGINBITMAPCOLOR { 
		BITMAPCOLOR} def
	/BEGINBITMAPCOLORc { 
		BITMAPCOLORc} def
	/BEGINBITMAPTRUECOLOR { 
		BITMAPTRUECOLOR } def
	/BEGINBITMAPTRUECOLORc { 
		BITMAPTRUECOLORc } def
	}
	
	{
	/BEGINBITMAPCOLOR { 
		BITMAPGRAY} def
	/BEGINBITMAPCOLORc { 
		BITMAPGRAYc} def
	/BEGINBITMAPTRUECOLOR { 
		BITMAPTRUEGRAY } def
	/BEGINBITMAPTRUECOLORc { 
		BITMAPTRUEGRAYc } def
	}
ifelse
/K { 
	FMPrintAllColorsAsBlack {
		dup 1 eq 2 index 1 eq and 3 index 1 eq and not
			{7 {pop} repeat 0 0 0 1 0 0 0} if
	} if 
	FrameCurColors astore 
	pop combineColor
} bind def
/graymode true def
	/bwidth FMLOCAL
	/bpside FMLOCAL
	/bstring FMLOCAL
	/onbits FMLOCAL
	/offbits FMLOCAL
	/xindex FMLOCAL
	/yindex FMLOCAL
	/x FMLOCAL
	/y FMLOCAL
/setPatternMode {
	FMLevel1 {
		/bwidth  exch def
		/bpside  exch def
		/bstring exch def
		/onbits 0 def  /offbits 0 def
		freq sangle landscape {90 add} if 
			{/y exch def
			 /x exch def
			 /xindex x 1 add 2 div bpside mul cvi def
			 /yindex y 1 add 2 div bpside mul cvi def
			 bstring yindex bwidth mul xindex 8 idiv add get
			 1 7 xindex 8 mod sub bitshift and 0 ne FrameNegative {not} if
			 {/onbits  onbits  1 add def 1}
			 {/offbits offbits 1 add def 0}
			 ifelse
			}
			setscreen
		offbits offbits onbits add div FrameNegative {1.0 exch sub} if
		/FrameCurGray exch def
	} { 
		pop pop
		dup patCache exch known {
			patCache exch get
		} { 
			dup
			patDict /bstring 3 -1 roll put
			patDict 
			9 PatFreq screenIndex get div dup matrix scale
			makepattern
			dup 
			patCache 4 -1 roll 3 -1 roll put
		} ifelse
		/FrameCurGray 0 def
		/FrameCurPat exch def
	} ifelse
	/graymode false def
	combineColor
} bind def
/setGrayScaleMode {
	graymode not {
		/graymode true def
		FMLevel1 {
			setCurrentScreen
		} if
	} if
	/FrameCurGray exch def
	combineColor
} bind def
/normalize {
	transform round exch round exch itransform
	} bind def
/dnormalize {
	dtransform round exch round exch idtransform
	} bind def
/lnormalize { 
	0 dtransform exch cvi 2 idiv 2 mul 1 add exch idtransform pop
	} bind def
/H { 
	lnormalize setlinewidth
	} bind def
/Z {
	setlinecap
	} bind def
	
/PFill {
	graymode FMLevel1 or not {
		gsave 1 setgray eofill grestore
	} if
} bind def
/PStroke {
	graymode FMLevel1 or not {
		gsave 1 setgray stroke grestore
	} if
	stroke
} bind def
	/fillvals FMLOCAL
/X { 
	fillvals exch get
	dup type /stringtype eq
	{8 1 setPatternMode} 
	{setGrayScaleMode}
	ifelse
	} bind def
/V { 
	PFill gsave eofill grestore
	} bind def
/Vclip {
	clip
	} bind def
/Vstrk {
	currentlinewidth exch setlinewidth PStroke setlinewidth
	} bind def
/N { 
	PStroke
	} bind def
/Nclip {
	strokepath clip newpath
	} bind def
/Nstrk {
	currentlinewidth exch setlinewidth PStroke setlinewidth
	} bind def
/M {newpath moveto} bind def
/E {lineto} bind def
/D {curveto} bind def
/O {closepath} bind def
	/n FMLOCAL
/L { 
 	/n exch def
	newpath
	normalize
	moveto 
	2 1 n {pop normalize lineto} for
	} bind def
/Y { 
	L 
	closepath
	} bind def
	/x1 FMLOCAL
	/x2 FMLOCAL
	/y1 FMLOCAL
	/y2 FMLOCAL
/R { 
	/y2 exch def
	/x2 exch def
	/y1 exch def
	/x1 exch def
	x1 y1
	x2 y1
	x2 y2
	x1 y2
	4 Y 
	} bind def
	/rad FMLOCAL
/rarc 
	{rad 
	 arcto
	} bind def
/RR { 
	/rad exch def
	normalize
	/y2 exch def
	/x2 exch def
	normalize
	/y1 exch def
	/x1 exch def
	mark
	newpath
	{
	x1 y1 rad add moveto
	x1 y2 x2 y2 rarc
	x2 y2 x2 y1 rarc
	x2 y1 x1 y1 rarc
	x1 y1 x1 y2 rarc
	closepath
	} stopped {x1 y1 x2 y2 R} if 
	cleartomark
	} bind def
/RRR { 
	/rad exch def
	normalize /y4 exch def /x4 exch def
	normalize /y3 exch def /x3 exch def
	normalize /y2 exch def /x2 exch def
	normalize /y1 exch def /x1 exch def
	newpath
	normalize moveto 
	mark
	{
	x2 y2 x3 y3 rarc
	x3 y3 x4 y4 rarc
	x4 y4 x1 y1 rarc
	x1 y1 x2 y2 rarc
	closepath
	} stopped
	 {x1 y1 x2 y2 x3 y3 x4 y4 newpath moveto lineto lineto lineto closepath} if
	cleartomark
	} bind def
/C { 
	grestore
	gsave
	R 
	clip
	setCurrentScreen
} bind def
/CP { 
	grestore
	gsave
	Y 
	clip
	setCurrentScreen
} bind def
	/FMpointsize FMLOCAL
/F { 
	FMfonts exch get
	FMpointsize scalefont
	setfont
	} bind def
/Q { 
	/FMpointsize exch def
	F 
	} bind def
/T { 
	moveto show
	} bind def
/RF { 
	rotate
	0 ne {-1 1 scale} if
	} bind def
/TF { 
	gsave
	moveto 
	RF
	show
	grestore
	} bind def
/P { 
	moveto
	0 32 3 2 roll widthshow
	} bind def
/PF { 
	gsave
	moveto 
	RF
	0 32 3 2 roll widthshow
	grestore
	} bind def
/S { 
	moveto
	0 exch ashow
	} bind def
/SF { 
	gsave
	moveto
	RF
	0 exch ashow
	grestore
	} bind def
/B { 
	moveto
	0 32 4 2 roll 0 exch awidthshow
	} bind def
/BF { 
	gsave
	moveto
	RF
	0 32 4 2 roll 0 exch awidthshow
	grestore
	} bind def
/G { 
	gsave
	newpath
	normalize translate 0.0 0.0 moveto 
	dnormalize scale 
	0.0 0.0 1.0 5 3 roll arc 
	closepath 
	PFill fill
	grestore
	} bind def
/Gstrk {
	savematrix
    newpath
    2 index 2 div add exch 3 index 2 div sub exch 
    normalize 2 index 2 div sub exch 3 index 2 div add exch 
    translate
    scale 
    0.0 0.0 1.0 5 3 roll arc 
    restorematrix
    currentlinewidth exch setlinewidth PStroke setlinewidth
    } bind def
/Gclip { 
	newpath
	savematrix
	normalize translate 0.0 0.0 moveto 
	dnormalize scale 
	0.0 0.0 1.0 5 3 roll arc 
	closepath 
	clip newpath
	restorematrix
	} bind def
/GG { 
	gsave
	newpath
	normalize translate 0.0 0.0 moveto 
	rotate 
	dnormalize scale 
	0.0 0.0 1.0 5 3 roll arc 
	closepath
	PFill
	fill
	grestore
	} bind def
/GGclip { 
	savematrix
	newpath
    normalize translate 0.0 0.0 moveto 
    rotate 
    dnormalize scale 
    0.0 0.0 1.0 5 3 roll arc 
    closepath
	clip newpath
	restorematrix
	} bind def
/GGstrk { 
	savematrix
    newpath
    normalize translate 0.0 0.0 moveto 
    rotate 
    dnormalize scale 
    0.0 0.0 1.0 5 3 roll arc 
    closepath 
	restorematrix
    currentlinewidth exch setlinewidth PStroke setlinewidth
	} bind def
/A { 
	gsave
	savematrix
	newpath
	2 index 2 div add exch 3 index 2 div sub exch 
	normalize 2 index 2 div sub exch 3 index 2 div add exch 
	translate 
	scale 
	0.0 0.0 1.0 5 3 roll arc 
	restorematrix
	PStroke
	grestore
	} bind def
/Aclip {
	newpath
	savematrix
	normalize translate 0.0 0.0 moveto 
	dnormalize scale 
	0.0 0.0 1.0 5 3 roll arc 
	closepath 
	strokepath clip newpath
	restorematrix
} bind def
/Astrk {
	Gstrk
} bind def
/AA { 
	gsave
	savematrix
	newpath
	
	3 index 2 div add exch 4 index 2 div sub exch 
	
	normalize 3 index 2 div sub exch 4 index 2 div add exch
	translate 
	rotate 
	scale 
	0.0 0.0 1.0 5 3 roll arc 
	restorematrix
	PStroke
	grestore
	} bind def
/AAclip {
	savematrix
	newpath
    normalize translate 0.0 0.0 moveto 
    rotate 
    dnormalize scale 
    0.0 0.0 1.0 5 3 roll arc 
    closepath
	strokepath clip newpath
	restorematrix
} bind def
/AAstrk {
	GGstrk
} bind def
	/x FMLOCAL
	/y FMLOCAL
	/w FMLOCAL
	/h FMLOCAL
	/xx FMLOCAL
	/yy FMLOCAL
	/ww FMLOCAL
	/hh FMLOCAL
	/FMsaveobject FMLOCAL
	/FMoptop FMLOCAL
	/FMdicttop FMLOCAL
/BEGINPRINTCODE { 
	/FMdicttop countdictstack 1 add def 
	/FMoptop count 7 sub def 
	/FMsaveobject save def
	userdict begin 
	/showpage {} def 
	FMNORMALIZEGRAPHICS 
	3 index neg 3 index neg translate
	} bind def
/ENDPRINTCODE {
	count -1 FMoptop {pop pop} for 
	countdictstack -1 FMdicttop {pop end} for 
	FMsaveobject restore 
	} bind def
/gn { 
	0 
	{	46 mul 
		cf read pop 
		32 sub 
		dup 46 lt {exit} if 
		46 sub add 
		} loop
	add 
	} bind def
	/str FMLOCAL
/cfs { 
	/str sl string def 
	0 1 sl 1 sub {str exch val put} for 
	str def 
	} bind def
/ic [ 
	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223
	0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0223
	0
	{0 hx} {1 hx} {2 hx} {3 hx} {4 hx} {5 hx} {6 hx} {7 hx} {8 hx} {9 hx}
	{10 hx} {11 hx} {12 hx} {13 hx} {14 hx} {15 hx} {16 hx} {17 hx} {18 hx}
	{19 hx} {gn hx} {0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11} {12}
	{13} {14} {15} {16} {17} {18} {19} {gn} {0 wh} {1 wh} {2 wh} {3 wh}
	{4 wh} {5 wh} {6 wh} {7 wh} {8 wh} {9 wh} {10 wh} {11 wh} {12 wh}
	{13 wh} {14 wh} {gn wh} {0 bl} {1 bl} {2 bl} {3 bl} {4 bl} {5 bl} {6 bl}
	{7 bl} {8 bl} {9 bl} {10 bl} {11 bl} {12 bl} {13 bl} {14 bl} {gn bl}
	{0 fl} {1 fl} {2 fl} {3 fl} {4 fl} {5 fl} {6 fl} {7 fl} {8 fl} {9 fl}
	{10 fl} {11 fl} {12 fl} {13 fl} {14 fl} {gn fl}
	] def
	/sl FMLOCAL
	/val FMLOCAL
	/ws FMLOCAL
	/im FMLOCAL
	/bs FMLOCAL
	/cs FMLOCAL
	/len FMLOCAL
	/pos FMLOCAL
/ms { 
	/sl exch def 
	/val 255 def 
	/ws cfs 
	/im cfs 
	/val 0 def 
	/bs cfs 
	/cs cfs 
	} bind def
400 ms 
/ip { 
	is 
	0 
	cf cs readline pop 
	{	ic exch get exec 
		add 
		} forall 
	pop 
	
	} bind def
/rip { 
	   
	  
	  bis ris copy pop 
      is
      0
      cf cs readline pop 
      {       ic exch get exec 
              add 
              } forall 
	  pop pop 
	  ris gis copy pop 
	  dup is exch 
	  
      cf cs readline pop 
      {       ic exch get exec 
              add 
              } forall 
	  pop pop
	  gis bis copy pop 
	  dup add is exch 
	  
      cf cs readline pop 
      {       ic exch get exec 
              add 
              } forall 
      pop 
      
      } bind def
/wh { 
	/len exch def 
	/pos exch def 
	ws 0 len getinterval im pos len getinterval copy pop
	pos len 
	} bind def
/bl { 
	/len exch def 
	/pos exch def 
	bs 0 len getinterval im pos len getinterval copy pop
	pos len 
	} bind def
/s1 1 string def
/fl { 
	/len exch def 
	/pos exch def 
	/val cf s1 readhexstring pop 0 get def
	pos 1 pos len add 1 sub {im exch val put} for
	pos len 
	} bind def
/hx { 
	3 copy getinterval 
	cf exch readhexstring pop pop 
	} bind def
	/h FMLOCAL
	/w FMLOCAL
	/d FMLOCAL
	/lb FMLOCAL
	/bitmapsave FMLOCAL
	/is FMLOCAL
	/cf FMLOCAL
/wbytes { 
      dup dup
      24 eq { pop pop 3 mul }
      { 8 eq {pop} {1 eq {7 add 8 idiv} {3 add 4 idiv} ifelse} ifelse } ifelse
	} bind def
/BEGINBITMAPBWc { 
	1 {} COMMONBITMAPc
	} bind def
/BEGINBITMAPGRAYc { 
	8 {} COMMONBITMAPc
	} bind def
/BEGINBITMAP2BITc { 
	2 {} COMMONBITMAPc
	} bind def
/COMMONBITMAPc { 
		 
	/r exch def
	/d exch def
	gsave
	
	3 index 2 div add exch	
	4 index 2 div add exch	
	translate		
	rotate			
	1 index 2 div neg	
	1 index 2 div neg	
	translate		
	scale			
	/h exch def /w exch def
	/lb w d wbytes def 
	sl lb lt {lb ms} if 
	/bitmapsave save def 
	r                    
	/is im 0 lb getinterval def 
	ws 0 lb getinterval is copy pop 
	/cf currentfile def 
	w h d [w 0 0 h neg 0 h] 
	{ip} image 
	bitmapsave restore 
	grestore
	} bind def
/BEGINBITMAPBW { 
	1 {} COMMONBITMAP
	} bind def
/BEGINBITMAPGRAY { 
	8 {} COMMONBITMAP
	} bind def
/BEGINBITMAP2BIT { 
	2 {} COMMONBITMAP
	} bind def
/COMMONBITMAP { 
	/r exch def
	/d exch def
	gsave
	
	3 index 2 div add exch	
	4 index 2 div add exch	
	translate		
	rotate			
	1 index 2 div neg	
	1 index 2 div neg	
	translate		
	scale			
	/h exch def /w exch def
	/bitmapsave save def 
	r                    
	/is w d wbytes string def
	/cf currentfile def 
	w h d [w 0 0 h neg 0 h] 
	{cf is readhexstring pop} image
	bitmapsave restore 
	grestore
	} bind def
/ngrayt 256 array def
/nredt 256 array def
/nbluet 256 array def
/ngreent 256 array def
	/gryt FMLOCAL
	/blut FMLOCAL
	/grnt FMLOCAL
	/redt FMLOCAL
	/indx FMLOCAL
	/cynu FMLOCAL
	/magu FMLOCAL
	/yelu FMLOCAL
	/k FMLOCAL
	/u FMLOCAL
FMLevel1 {
/colorsetup {
	currentcolortransfer
	/gryt exch def
	/blut exch def
	/grnt exch def
	/redt exch def
	0 1 255 {
		/indx exch def
		/cynu 1 red indx get 255 div sub def
		/magu 1 green indx get 255 div sub def
		/yelu 1 blue indx get 255 div sub def
		/k cynu magu min yelu min def
		/u k currentundercolorremoval exec def
%		/u 0 def
		nredt indx 1 0 cynu u sub max sub redt exec put
		ngreent indx 1 0 magu u sub max sub grnt exec put
		nbluet indx 1 0 yelu u sub max sub blut exec put
		ngrayt indx 1 k currentblackgeneration exec sub gryt exec put
	} for
	{255 mul cvi nredt exch get}
	{255 mul cvi ngreent exch get}
	{255 mul cvi nbluet exch get}
	{255 mul cvi ngrayt exch get}
	setcolortransfer
	{pop 0} setundercolorremoval
	{} setblackgeneration
	} bind def
}
{
/colorSetup2 {
	[ /Indexed /DeviceRGB 255 
		{dup red exch get 255 div 
		 exch dup green exch get 255 div 
		 exch blue exch get 255 div}
	] setcolorspace
} bind def
} ifelse
	/tran FMLOCAL
/fakecolorsetup {
	/tran 256 string def
	0 1 255 {/indx exch def 
		tran indx
		red indx get 77 mul
		green indx get 151 mul
		blue indx get 28 mul
		add add 256 idiv put} for
	currenttransfer
	{255 mul cvi tran exch get 255.0 div}
	exch concatprocs settransfer
} bind def
/BITMAPCOLOR { 
	/d 8 def
	gsave
	
	3 index 2 div add exch	
	4 index 2 div add exch	
	translate		
	rotate			
	1 index 2 div neg	
	1 index 2 div neg	
	translate		
	scale			
	/h exch def /w exch def
	/bitmapsave save def
	FMLevel1 {	
		colorsetup
		/is w d wbytes string def
		/cf currentfile def 
		w h d [w 0 0 h neg 0 h] 
		{cf is readhexstring pop} {is} {is} true 3 colorimage 
	} {
		colorSetup2
		/is w d wbytes string def
		/cf currentfile def 
		7 dict dup begin
			/ImageType 1 def
			/Width w def
			/Height h def
			/ImageMatrix [w 0 0 h neg 0 h] def
			/DataSource {cf is readhexstring pop} bind def
			/BitsPerComponent d def
			/Decode [0 255] def
		end image	
	} ifelse
	bitmapsave restore 
	grestore
	} bind def
/BITMAPCOLORc { 
	/d 8 def
	gsave
	
	3 index 2 div add exch	
	4 index 2 div add exch	
	translate		
	rotate			
	1 index 2 div neg	
	1 index 2 div neg	
	translate		
	scale			
	/h exch def /w exch def
	/lb w d wbytes def 
	sl lb lt {lb ms} if 
	/bitmapsave save def 
	FMLevel1 {	
		colorsetup
		/is im 0 lb getinterval def 
		ws 0 lb getinterval is copy pop 
		/cf currentfile def 
		w h d [w 0 0 h neg 0 h] 
		{ip} {is} {is} true 3 colorimage
	} {
		colorSetup2
		/is im 0 lb getinterval def 
		ws 0 lb getinterval is copy pop 
		/cf currentfile def 
		7 dict dup begin
			/ImageType 1 def
			/Width w def
			/Height h def
			/ImageMatrix [w 0 0 h neg 0 h] def
			/DataSource {ip} bind def
			/BitsPerComponent d def
			/Decode [0 255] def
		end image	
	} ifelse
	bitmapsave restore 
	grestore
	} bind def
/BITMAPTRUECOLORc { 
	/d 24 def
        gsave
 	
	3 index 2 div add exch	
	4 index 2 div add exch	
	translate		
	rotate			
	1 index 2 div neg	
	1 index 2 div neg	
	translate		
	scale			
	/h exch def /w exch def
	/lb w d wbytes def 
	sl lb lt {lb ms} if 
        /bitmapsave save def 
        
	/is im 0 lb getinterval def	
	/ris im 0 w getinterval def	
	/gis im w w getinterval def	
	/bis im w 2 mul w getinterval def 
        
        ws 0 lb getinterval is copy pop 
        /cf currentfile def 
        w h 8 [w 0 0 h neg 0 h] 
        {w rip pop ris} {gis} {bis} true 3 colorimage
        bitmapsave restore 
        grestore
        } bind def
/BITMAPTRUECOLOR { 
        gsave
		
		3 index 2 div add exch	
		4 index 2 div add exch	
		translate		
		rotate			
		1 index 2 div neg	
		1 index 2 div neg	
		translate		
		scale			
		/h exch def /w exch def
        /bitmapsave save def 
        /is w string def
        /gis w string def
        /bis w string def
        /cf currentfile def 
        w h 8 [w 0 0 h neg 0 h] 
        { cf is readhexstring pop } 
        { cf gis readhexstring pop } 
        { cf bis readhexstring pop } 
        true 3 colorimage 
        bitmapsave restore 
        grestore
        } bind def
/BITMAPTRUEGRAYc { 
	/d 24 def
        gsave
	
	3 index 2 div add exch	
	4 index 2 div add exch	
	translate		
	rotate			
	1 index 2 div neg	
	1 index 2 div neg	
	translate		
	scale			
	/h exch def /w exch def
	/lb w d wbytes def 
	sl lb lt {lb ms} if 
        /bitmapsave save def 
        
	/is im 0 lb getinterval def	
	/ris im 0 w getinterval def	
	/gis im w w getinterval def	
	/bis im w 2 mul w getinterval def 
        ws 0 lb getinterval is copy pop 
        /cf currentfile def 
        w h 8 [w 0 0 h neg 0 h] 
        {w rip pop ris gis bis w gray} image
        bitmapsave restore 
        grestore
        } bind def
/ww FMLOCAL
/r FMLOCAL
/g FMLOCAL
/b FMLOCAL
/i FMLOCAL
/gray { 
        /ww exch def
        /b exch def
        /g exch def
        /r exch def
        0 1 ww 1 sub { /i exch def r i get .299 mul g i get .587 mul
			b i get .114 mul add add r i 3 -1 roll floor cvi put } for
        r
        } bind def
/BITMAPTRUEGRAY { 
        gsave
		
		3 index 2 div add exch	
		4 index 2 div add exch	
		translate		
		rotate			
		1 index 2 div neg	
		1 index 2 div neg	
		translate		
		scale			
		/h exch def /w exch def
        /bitmapsave save def 
        /is w string def
        /gis w string def
        /bis w string def
        /cf currentfile def 
        w h 8 [w 0 0 h neg 0 h] 
        { cf is readhexstring pop 
          cf gis readhexstring pop 
          cf bis readhexstring pop w gray}  image
        bitmapsave restore 
        grestore
        } bind def
/BITMAPGRAY { 
	8 {fakecolorsetup} COMMONBITMAP
	} bind def
/BITMAPGRAYc { 
	8 {fakecolorsetup} COMMONBITMAPc
	} bind def
/ENDBITMAP {
	} bind def
end 
	/ALDsave FMLOCAL
	/ALDmatrix matrix def ALDmatrix currentmatrix pop
/StartALD {
	/ALDsave save def
	 savematrix
	 ALDmatrix setmatrix
	} bind def
/InALD {
	 restorematrix
	} bind def
/DoneALD {
	 ALDsave restore
	} bind def
/I { setdash } bind def
/J { [] 0 setdash } bind def
%%EndProlog
%%BeginSetup
(4.0) FMVERSION
1 1 0 0 612 792 0 1 12 FMDOCUMENT
0 0 /Times-Roman FMFONTDEFINE
1 0 /Times-Italic FMFONTDEFINE
2 0 /Courier FMFONTDEFINE
3 0 /Times-Bold FMFONTDEFINE
4 0 /Courier-Oblique FMFONTDEFINE
5 0 /Courier-Bold FMFONTDEFINE
32 FMFILLS
0 0 FMFILL
1 0.1 FMFILL
2 0.3 FMFILL
3 0.5 FMFILL
4 0.7 FMFILL
5 0.9 FMFILL
6 0.97 FMFILL
7 1 FMFILL
8 <0f1e3c78f0e1c387> FMFILL
9 <0f87c3e1f0783c1e> FMFILL
10 <cccccccccccccccc> FMFILL
11 <ffff0000ffff0000> FMFILL
12 <8142241818244281> FMFILL
13 <03060c183060c081> FMFILL
14 <8040201008040201> FMFILL
16 1 FMFILL
17 0.9 FMFILL
18 0.7 FMFILL
19 0.5 FMFILL
20 0.3 FMFILL
21 0.1 FMFILL
22 0.03 FMFILL
23 0 FMFILL
24 <f0e1c3870f1e3c78> FMFILL
25 <f0783c1e0f87c3e1> FMFILL
26 <3333333333333333> FMFILL
27 <0000ffff0000ffff> FMFILL
28 <7ebddbe7e7dbbd7e> FMFILL
29 <fcf9f3e7cf9f3f7e> FMFILL
30 <7fbfdfeff7fbfdfe> FMFILL
%%EndSetup
%%Page: "mini" 1
%%BeginPaperSize: Letter
%%EndPaperSize
612 792 1 FMBEGINPAGE
[0 0 0 1 0 0 0]
[ 0 1 1 0 1 0 0]
[ 1 0 1 0 0 1 0]
[ 1 1 0 0 0 0 1]
[ 1 0 0 0 0 1 1]
[ 0 1 0 0 1 0 1]
[ 0 0 1 0 1 1 0]
 7 FrameSetSepColors
FrameNoSep
0 0 0 1 0 0 0 K
J
27 -62.74 639 729.26 C
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
1 1 0 0 0 0 1 K
0 0 0 1 0 0 0 K
1 1 0 0 0 0 1 K
0 0 0 1 0 0 0 K
1 1 0 0 0 0 1 K
0 5.43 Q
0 X
1 1 0 0 0 0 1 K
0.05 (1) 360.67 277.64 S
0 0 0 1 0 0 0 K
146.38 628.94 363.44 628.94 2 L
0.18 H
2 Z
0 0 0 1 0 0 0 K
N
138.55 262.59 264.41 273.14 R
7 X
V
59.56 645.6 363.44 685.85 C
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
27 -62.74 639 729.26 C
1 12.06 Q
0 X
0 0 0 1 0 0 0 K
-1.51 (POSIX.1c/D10 Summary) 146.38 637.57 P
1 9.04 Q
(Disclaimer) 59.56 603.85 T
0 6.03 Q
0.31 0.06 (Copyright \050C\051 1995 by Sun Microsystems, Inc.) 102.97 590.79 B
0.31 0.06 (All rights reserved.) 102.97 583.31 B
0.31 0.06 (This \336le is a product of SunSoft, Inc. and is provided for unrestricted use provided that this legend is) 102.97 571.01 B
0.31 0.06 (included on all media and as a part of the software program in whole or part. Users may copy) 102.97 563.54 B
0.31 0.06 (, modify) 338.98 563.54 B
0.31 0.06 (or distribute this \336le at will.) 102.97 556.06 B
0.31 0.06 (THIS FILE IS PROVIDED AS IS WITH NO W) 102.97 543.76 B
0.31 0.06 (ARRANTIES OF ANY KIND INCLUDING THE) 224.26 543.76 B
0.31 0.06 (W) 102.97 536.28 B
0.31 0.06 (ARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A P) 108.05 536.28 B
0.31 0.06 (AR) 302.46 536.28 B
0.31 0.06 (TICULAR) 310.6 536.28 B
0.31 0.06 (PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.) 102.97 528.81 B
0.22 0.06 (This \336le is provided with no support and without any obligation on the part of SunSoft, Inc. to assist in) 102.97 516.51 B
0.31 0.06 (its use, correction, modi\336cation or enhancement.) 102.97 509.03 B
0.19 0.06 (SUNSOFT AND SUN MICROSYSTEMS, INC. SHALL HA) 102.97 496.73 B
0.19 0.06 (VE NO LIABILITY WITH RESPECT T) 255.32 496.73 B
0.19 0.06 (O) 357.27 496.73 B
0.31 0.06 (THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY P) 102.97 489.25 B
0.31 0.06 (A) 294.92 489.25 B
0.31 0.06 (TENTS BY THIS FILE) 298.66 489.25 B
0.31 0.06 (OR ANY P) 102.97 481.78 B
0.31 0.06 (AR) 131.33 481.78 B
0.31 0.06 (T THEREOF) 139.46 481.78 B
0.31 0.06 (.) 172.16 481.78 B
0.31 0.06 (IN NO EVENT WILL SUNSOFT OR SUN MICROSYSTEMS, INC. BE LIABLE FOR ANY LOST) 102.97 469.48 B
0.31 0.06 (REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL DAMAGES,) 102.97 462 B
0.31 0.06 (EVEN IF THEY HA) 102.97 454.52 B
0.31 0.06 (VE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.) 154.77 454.52 B
0.31 0.06 (SunSoft, Inc.) 102.97 442.23 B
0.31 0.06 (2550 Garcia A) 102.97 434.75 B
0.31 0.06 (venue) 139.43 434.75 B
0.31 0.06 (Mountain V) 102.97 427.27 B
0.31 0.06 (iew) 132.84 427.27 B
0.31 0.06 (, California 94043) 141.33 427.27 B
1 9.04 Q
(Intr) 59.56 406.93 T
(oduction) 72.79 406.93 T
0 6.03 Q
0.31 0.06 (All source that uses POSIX.1c threads must include the header \336le.) 102.97 393.87 B
2 5.43 Q
(#include <pthread.h>) 124.68 384.38 T
0 6.03 Q
0.22 0.06 (In addition, Solaris requires the pre-processor symbol) 102.97 372.53 B
3 F
0.22 0.06 (_REENTRANT) 238.78 372.53 B
0 F
0.22 0.06 ( to be de\336ned in the source code) 280.25 372.53 B
0.31 0.06 (before any C source \050including header \336les\051.) 102.97 365.05 B
2 5.43 Q
(#define) 124.68 355.56 T
(_REENTRANT) 147.47 355.56 T
0 6.03 Q
0.31 0.06 (The POSIX.1c thread library should be the last library speci\336ed on the) 102.97 343.71 B
2 F
0.74 0.06 (cc\0501\051) 282.66 343.71 B
0 F
0.31 0.06 ( command line.) 301.05 343.71 B
2 5.43 Q
(voyager% cc -D_REENTRANT ... -lpthread) 124.68 334.22 T
1 9.04 Q
-0.56 (Name Space) 59.56 314.32 P
0 6.03 Q
0.31 0.06 (Each POSIX.1c type is of the form:) 102.97 301.26 B
396 -62.74 1008 729.26 C
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
1 1 0 0 0 0 1 K
0 0 0 1 0 0 0 K
1 1 0 0 0 0 1 K
1 5.43 Q
0 X
1 1 0 0 0 0 1 K
-0.35 0.05 (POSIX.1c/D10 Summary) 515.38 274.65 B
0 0 0 1 0 0 0 K
1 1 0 0 0 0 1 K
0 F
0.05 (2) 729.67 274.65 S
0 0 0 1 0 0 0 K
732.44 702.13 428.56 702.13 2 L
0.18 H
2 Z
0 0 0 1 0 0 0 K
N
507.55 345.64 633.41 356.19 R
7 X
V
2 F
0 X
(pthread[) 493.68 682.23 T
4 F
(_object) 519.72 682.23 T
2 F
(]_t) 542.52 682.23 T
0 6.03 Q
0.31 0.06 (Each POSIX.1c function has the form) 471.97 670.38 B
2 5.43 Q
(pthread[) 493.68 660.89 T
4 F
(_object) 519.72 660.89 T
2 F
(]_operation[_np|_NP]) 542.52 660.89 T
0 6.03 Q
0.31 0.06 (where) 471.97 649.03 B
4 F
0.74 0.06 (object) 488.88 649.03 B
0 F
0.31 0.06 ( is a type \050not required if object is a thread\051,) 510.95 649.03 B
2 F
0.74 0.06 (operation) 624.52 649.03 B
0 F
0.31 0.06 ( is a type-speci\336c operation) 657.62 649.03 B
0.31 0.06 (and) 471.97 641.56 B
2 F
0.74 0.06 (np) 482.74 641.56 B
0 F
0.31 0.06 ( \050or) 490.1 641.56 B
2 F
0.74 0.06 (NP) 501.07 641.56 B
0 F
0.31 0.06 (\051 is used to identify non-portable, implementation speci\336c functions.) 508.42 641.56 B
0.31 0.06 (All POSIX.1c functions \050except for) 471.97 629.26 B
2 F
0.74 0.06 (pthread_exit) 562.72 629.26 B
0 F
0.31 0.06 (,) 606.86 629.26 B
2 F
0.74 0.06 (pthread_getspecif) 610.31 629.26 B
0.74 0.06 (ic) 672.83 629.26 B
0 F
0.31 0.06 ( and) 680.19 629.26 B
2 F
0.74 0.06 (pthread_self) 471.97 621.78 B
0 F
0.31 0.06 (\051 return zero \0500\051 for success or an) 516.11 621.78 B
2 F
0.74 0.06 (errno) 602.48 621.78 B
0 F
0.31 0.06 ( value if the operation fails.) 620.87 621.78 B
0.31 0.06 (There are eight\0508\051 POSIX.1c types:) 471.97 609.48 B
1 9.04 Q
-0.56 (Featur) 428.56 480.61 P
-0.56 (e T) 452.84 480.61 P
-0.56 (est Macr) 462.75 480.61 P
-0.56 (os) 493.75 480.61 P
0 6.03 Q
0.31 0.06 (POSIX.1c consists of a base \050or common\051 component and a number of implementation optional) 471.97 467.55 B
0.25 0.06 (components The base is the set of required operations to be supplied by every implementation. The pre-) 471.97 460.07 B
0.31 0.06 (processor symbol \050) 471.97 452.6 B
3 F
0.31 0.06 (_POSIX_THREADS) 519.57 452.6 B
0 F
0.31 0.06 (\051 can be used to test for the presence of the POSIX.1c base.) 574.01 452.6 B
0.31 0.06 (Additionally) 471.97 445.12 B
0.31 0.06 (, the standards document describes a set of six \0506\051 optional components. A pre-processor) 502.79 445.12 B
0.31 0.06 (symbol can be used to test for the presence of each All of the symbols appear in the following table.) 471.97 437.64 B
1 9.04 Q
-0.56 (Macr) 428.56 319.02 P
-0.56 (o Dependency) 447.82 319.02 P
0 6.03 Q
0.31 0.06 (If) 471.97 305.96 B
3 F
0.31 0.06 (_POSIX_THREAD_PRIO_INHERIT) 477.99 305.96 B
0 F
0.31 0.06 ( is de\336ned then) 577.04 305.96 B
3 F
0.31 0.06 (_POSIX_THREAD_PRIORITY_SCHEDULING) 471.97 298.48 B
0 F
0.31 0.06 ( is de\336ned.) 600.92 298.48 B
1 5.43 Q
0.28 0.05 (T) 515.38 596.62 B
0.28 0.05 (able 0-1) 517.96 596.62 B
0 F
0.28 0.05 (POSIX.1c types) 541.43 596.62 B
3 F
0.05 (T) 471.97 583.96 S
0.05 (ype) 475.24 583.96 S
0.05 (Description) 526.24 583.96 S
0 F
0.05 (pthread_attr_t) 471.97 573.71 S
0.28 0.05 (Thread attribute) 526.24 573.71 B
0.05 (pthread_mutexattr_t) 471.97 563.46 S
0.28 0.05 (Mutual Exclusion Lock attribute) 526.24 563.46 B
0.05 (pthread_condattr_t) 471.97 553.21 S
0.28 0.05 (Condition variable attribute) 526.24 553.21 B
0.05 (pthread_mutex_t) 471.97 542.96 S
0.28 0.05 (Mutual Exclusion Lock \050mutex\051) 526.24 542.96 B
0.05 (pthread_cond_t) 471.97 532.71 S
0.28 0.05 (Condition variable \050cv\051) 526.24 532.71 B
0.05 (pthread_t) 471.97 522.46 S
0.28 0.05 (Thread ID) 526.24 522.46 B
0.05 (pthread_once_t) 471.97 512.21 S
0.28 0.05 (Once-only execution) 526.24 512.21 B
0.05 (pthread_key_t) 471.97 501.96 S
0.28 0.05 (Thread Speci\336c Data \050TSD\051 key) 526.24 501.96 B
1 F
0.28 0.05 (T) 515.38 424.78 B
0.28 0.05 (able 0-2) 517.96 424.78 B
0 F
0.28 0.05 (POSIX.1c Feature T) 541.43 424.78 B
0.28 0.05 (est Macros) 587.05 424.78 B
3 F
0.28 0.05 (Featur) 471.97 412.12 B
0.28 0.05 (e T) 487.87 412.12 B
0.28 0.05 (est Macr) 495.2 412.12 B
0.28 0.05 (o) 516.16 412.12 B
0.05 (Description) 602.21 412.12 S
0.05 (_POSIX_THREADS) 471.97 401.87 S
0 F
0.28 0.05 (base threads) 602.21 401.87 B
3 F
0.05 (_POSIX_THREAD_A) 471.97 391.62 S
0.05 (TTR_ST) 524.24 391.62 S
0.05 (ACKADDR) 544.67 391.62 S
0 F
0.28 0.05 (stack address attribute) 602.21 391.62 B
3 F
0.05 (_POSIX_THREAD_A) 471.97 381.37 S
0.05 (TTR_ST) 524.24 381.37 S
0.05 (ACKSIZE) 544.67 381.37 S
0 F
0.28 0.05 (stack size attribute) 602.21 381.37 B
3 F
0.05 (_POSIX_THREAD_PRIORITY_SCHEDULING) 471.97 371.12 S
0 F
0.28 0.05 (thread priority scheduling) 602.21 371.12 B
3 F
0.05 (_POSIX_THREAD_PRIO_INHERIT) 471.97 360.87 S
0 F
0.28 0.05 (mutex priority inheritance) 602.21 360.87 B
3 F
0.05 (_POSIX_THREAD_PRIO_PROTECT) 471.97 350.62 S
0 F
0.28 0.05 (mutex priority ceiling) 602.21 350.62 B
3 F
0.05 (_POSIX_THREAD_PROCESS_SHARED) 471.97 340.37 S
0 F
0.28 0.05 (inter) 602.21 340.37 B
0.28 0.05 (-process synchronization) 612.32 340.37 B
471.97 591.19 634.76 591.19 2 L
V
0 Z
N
471.97 580.94 634.76 580.94 2 L
V
0.3 H
N
471.97 498.94 634.76 498.94 2 L
V
0.18 H
N
471.97 419.35 689.03 419.35 2 L
V
N
471.97 409.1 689.03 409.1 2 L
V
0.3 H
N
471.97 337.35 689.03 337.35 2 L
V
0.18 H
N
FMENDPAGE
%%EndPage: "mini" 1
%%Page: "mini" 2
612 792 1 FMBEGINPAGE
[0 0 0 1 0 0 0]
[ 0 1 1 0 1 0 0]
[ 1 0 1 0 0 1 0]
[ 1 1 0 0 0 0 1]
[ 1 0 0 0 0 1 1]
[ 0 1 0 0 1 0 1]
[ 0 0 1 0 1 1 0]
 7 FrameSetSepColors
FrameNoSep
27 -62.74 639 729.26 C
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
1 1 0 0 0 0 1 K
0 5.43 Q
0 X
1 1 0 0 0 0 1 K
0.05 (3) 59.56 274.65 S
0 0 0 1 0 0 0 K
1 1 0 0 0 0 1 K
1 F
-0.35 0.05 (POSIX.1c/D10 Summary) 146.38 274.65 B
0 F
-0.35 0.05 (\321) 201.37 274.65 B
1 F
-0.35 0.05 (May 1995) 206.85 274.65 B
0 0 0 1 0 0 0 K
363.44 702.13 59.56 702.13 2 L
0.18 H
2 Z
0 0 0 1 0 0 0 K
N
138.55 345.64 264.41 356.19 R
7 X
V
0 6.03 Q
0 X
0.31 0.06 (If) 102.97 681.83 B
3 F
0.31 0.06 (_POSIX_THREAD_PRIO_PROTECT) 108.99 681.83 B
0 F
0.31 0.06 ( is de\336ned then) 211.05 681.83 B
3 F
0.31 0.06 (_POSIX_THREAD_PRIORITY_SCHEDULING) 102.97 674.35 B
0 F
0.31 0.06 ( is de\336ned.) 231.92 674.35 B
0.31 0.06 (If) 102.97 662.05 B
3 F
0.31 0.06 (_POSIX_THREAD_PRIORITY_SCHEDULING) 108.99 662.05 B
0 F
0.31 0.06 ( is de\336ned then) 237.94 662.05 B
3 F
0.31 0.06 (_POSIX_THREADS) 278.34 662.05 B
0 F
0.31 0.06 ( is de\336ned.) 332.78 662.05 B
0.31 0.06 (If) 102.97 649.76 B
3 F
0.31 0.06 (_POSIX_THREADS) 108.99 649.76 B
0 F
0.31 0.06 ( is de\336ned then) 163.43 649.76 B
3 F
0.31 0.06 (_POSIX_THREAD_SAFE_FUNCTIONS) 203.84 649.76 B
0 F
0.31 0.06 ( is de\336ned.) 312.72 649.76 B
1 9.04 Q
-0.56 (POSIX.1c API) 59.56 629.42 P
0 6.03 Q
0.31 0.06 (In the following sections, function ar) 102.97 616.35 B
0.31 0.06 (guments that are of the form:) 195.81 616.35 B
2 5.43 Q
(type name =) 124.68 606.87 T
5 F
(NULL) 163.75 606.87 T
0 6.03 Q
0.31 0.06 (indicate that a value of) 102.97 595.01 B
3 F
0.31 0.06 (NULL) 162.47 595.01 B
0 F
0.31 0.06 ( may safely be used for) 179.46 595.01 B
2 F
0.74 0.06 (name) 240.39 595.01 B
0 F
0.31 0.06 (.) 255.1 595.01 B
2 5.43 Q
(int) 59.56 573.22 T
(pthread_atfork\050 void \050*prepare\051\050void\051 =) 81.27 573.22 T
5 F
(NULL) 211.5 573.22 T
2 F
(,) 224.52 573.22 T
(void \050*parent\051\050void\051 =) 146.38 564.18 T
5 F
(NULL) 221.27 564.18 T
2 F
(,) 234.29 564.18 T
(void \050*child\051\050void\051 =) 146.38 555.14 T
5 F
(NULL) 218.01 555.14 T
2 F
( \051;) 231.04 555.14 T
0 6.03 Q
0.31 0.06 (Register functions to be called during fork execution.) 102.97 545.69 B
0.06 (errors) 102.97 538.21 S
3 F
0.06 (ENOMEM) 135.53 538.21 S
0 F
0.06 (notes) 102.97 530.74 S
2 F
0.74 0.06 (prepare) 135.53 530.74 B
0 F
0.31 0.06 ( functions are called in reverse order of registration.) 161.27 530.74 B
2 F
0.74 0.06 (parent) 135.53 523.26 B
0 F
0.31 0.06 ( and) 157.6 523.26 B
2 F
0.74 0.06 (child) 170.25 523.26 B
0 F
0.31 0.06 ( functions are called in order of registration.) 188.64 523.26 B
1 9.04 Q
-0.56 (Thr) 59.56 502.92 P
-0.56 (ead Attributes) 72.29 502.92 P
0 6.03 Q
0.31 0.06 (All thread attributes are set in an attribute object by a function of the form:) 102.97 489.86 B
2 5.43 Q
(int) 124.68 480.37 T
(pthread_attr_set) 146.38 480.37 T
4 F
(name) 198.48 480.37 T
2 F
(\050 pthread_attr_t *attr,) 211.5 480.37 T
4 F
(Type) 289.64 480.37 T
2 F
( t \051;) 302.66 480.37 T
0 6.03 Q
0.31 0.06 (All thread attributes are retrieved from an attribute object by a function of the form:) 102.97 468.51 B
2 5.43 Q
(int) 124.68 459.03 T
(pthread_attr_get) 146.38 459.03 T
4 F
(name) 198.48 459.03 T
2 F
(\050 const pthread_attr_t *attr,) 211.5 459.03 T
4 F
(Type) 309.17 459.03 T
2 F
( *t \051;) 322.2 459.03 T
0 6.03 Q
0.31 0.06 (Where) 102.97 447.17 B
4 F
0.74 0.06 (name) 121.22 447.17 B
0 F
0.31 0.06 ( and) 135.93 447.17 B
4 F
0.74 0.06 (Type) 148.58 447.17 B
0 F
0.31 0.06 ( are from the table below) 163.29 447.17 B
0.31 0.06 (.) 226.42 447.17 B
1 5.43 Q
0.28 0.05 (T) 146.38 434.31 B
0.28 0.05 (able 0-3) 148.96 434.31 B
0 F
0.28 0.05 (Thread Attributes) 172.43 434.31 B
3 F
0.28 0.05 (Name and T) 59.56 421.64 B
0.28 0.05 (ype) 88.91 421.64 B
0.28 0.05 (Featur) 135.53 421.64 B
0.28 0.05 (e T) 151.43 421.64 B
0.28 0.05 (est Macr) 158.76 421.64 B
0.28 0.05 (o) 179.72 421.64 B
0.05 (V) 265.76 421.64 S
0.05 (alue\050s\051) 269.24 421.64 S
2 F
0.66 0.05 (int inheritsched) 59.56 411.39 B
3 F
0.05 (_POSIX_THREAD_PRIORITY_SCHEDULING) 135.53 411.39 S
0.05 (PTHREAD_INHERIT_SCHED,) 265.76 411.39 S
0.05 (PTHREAD_EXPLICIT_SCHED) 265.76 401.14 S
2 F
0.66 0.05 (int schedpolicy) 59.56 390.89 B
3 F
0.05 (_POSIX_THREAD_PRIORITY_SCHEDULING) 135.53 390.89 S
0.05 (SCHED_FIFO,) 265.76 390.89 S
0.05 (SCHED_RR,) 265.76 380.64 S
0.05 (SCHED_OTHER) 265.76 370.39 S
2 F
0.66 0.05 (struct sched_param) 59.56 360.14 B
0.05 (schedparam) 59.56 352.91 S
3 F
0.05 (_POSIX_THREADS) 135.53 360.14 S
0 F
0.28 0.05 (POSIX.1b, Section 13) 265.76 360.14 B
2 F
0.66 0.05 (int contentionscope) 59.56 342.66 B
3 F
0.05 (_POSIX_THREAD_PRIORITY_SCHEDULING) 135.53 342.66 S
0.05 (PTHREAD_SCOPE_SYSTEM,) 265.76 342.66 S
0.05 (PTHREAD_SCOPE_PROCESS) 265.76 332.41 S
2 F
0.66 0.05 (size_t stacksize) 59.56 322.16 B
3 F
0.05 (_POSIX_THREAD_A) 135.53 322.16 S
0.05 (TTR_ST) 187.8 322.16 S
0.05 (ACKSIZE) 208.23 322.16 S
0 F
0.28 0.05 (>=) 265.76 322.16 B
3 F
0.28 0.05 (PTHREAD_ST) 273.69 322.16 B
0.28 0.05 (ACK_MIN) 309.71 322.16 B
59.56 428.88 363.44 428.88 2 L
V
0 Z
N
59.56 418.63 363.44 418.63 2 L
V
0.3 H
N
59.56 319.15 363.44 319.15 2 L
V
0.18 H
N
396 -62.74 1008 729.26 C
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
1 1 0 0 0 0 1 K
0 0 0 1 0 0 0 K
1 1 0 0 0 0 1 K
1 5.43 Q
0 X
1 1 0 0 0 0 1 K
-0.35 0.05 (POSIX.1c/D10 Summary) 515.38 274.65 B
0 0 0 1 0 0 0 K
1 1 0 0 0 0 1 K
0 F
0.05 (4) 729.67 274.65 S
0 0 0 1 0 0 0 K
732.44 702.13 428.56 702.13 2 L
0.18 H
2 Z
0 0 0 1 0 0 0 K
N
507.55 345.64 633.41 356.19 R
7 X
V
2 F
0 X
(int) 428.56 624.96 T
(pthread_attr_init\050 pthread_attr_t *attr \051;) 450.27 624.96 T
0 6.03 Q
0.31 0.06 (Initialize a thread attribute object.) 471.97 615.51 B
0.06 (errors) 471.97 608.03 S
3 F
0.06 (ENOMEM) 504.53 608.03 S
2 5.43 Q
(int) 428.56 598.55 T
(pthread_attr_destroy\050 pthread_attr_t *attr \051;) 450.27 598.55 T
0 6.03 Q
0.31 0.06 (Destroy a thread attribute object.) 471.97 589.1 B
0.06 (errors) 471.97 581.62 S
0.06 (none) 504.53 581.62 S
1 9.04 Q
-0.56 (Thr) 428.56 561.29 P
-0.56 (ead Management) 441.29 561.29 P
2 5.43 Q
(int) 428.56 549.83 T
(pthread_create\050 pthread_t *thread,) 450.27 549.83 T
(const pthread_attr_t *attr =) 515.38 540.79 T
5 F
(NULL) 609.8 540.79 T
2 F
(,) 622.83 540.79 T
(void *\050*entry\051\050void *\051, void *arg \051;) 515.38 531.74 T
0 6.03 Q
0.31 0.06 (Create a new thread of execution.) 471.97 522.3 B
0.06 (errors) 471.97 514.82 S
3 F
0.31 0.06 (EAGAIN) 504.53 514.82 B
0 F
0.31 0.06 (,) 529.01 514.82 B
3 F
0.31 0.06 (EINV) 532.46 514.82 B
0.31 0.06 (AL) 546.99 514.82 B
0 F
0.06 (note) 471.97 507.34 S
0.31 0.06 (Maximum number of) 504.53 507.34 B
3 F
0.31 0.06 (PTHREAD_THREADS_MAX) 559.64 507.34 B
0 F
0.31 0.06 ( threads per process.) 639.84 507.34 B
2 5.43 Q
(int) 428.56 497.86 T
(pthread_detach\050 pthread_t thread \051;) 450.27 497.86 T
0 6.03 Q
0.31 0.06 (Set the) 471.97 488.41 B
2 F
0.74 0.06 (detachstate) 491.17 488.41 B
0 F
0.31 0.06 ( of the speci\336ed thread to) 531.62 488.41 B
3 F
0.31 0.06 (PTHREAD_CREA) 597.76 488.41 B
0.31 0.06 (TE_DET) 647.61 488.41 B
0.31 0.06 (ACHED) 670.98 488.41 B
0 F
0.31 0.06 (.) 693.05 488.41 B
0.06 (errors) 471.97 480.93 S
3 F
0.31 0.06 (EINV) 504.53 480.93 B
0.31 0.06 (AL) 519.07 480.93 B
0 F
0.31 0.06 (,) 527.56 480.93 B
3 F
0.31 0.06 (ESRCH) 531.01 480.93 B
2 5.43 Q
(pthread_t) 428.56 471.45 T
(pthread_self\050 void \051;) 471.97 471.45 T
0 6.03 Q
0.31 0.06 (Return the thread ID of the calling thread.) 471.97 462 B
0.06 (errors) 471.97 454.52 S
0.06 (none) 504.53 454.52 S
2 5.43 Q
(int) 428.56 445.04 T
(pthread_equal\050 pthread_t t1, pthread_t t2 \051;) 450.27 445.04 T
0 6.03 Q
0.31 0.06 (Compare two thread IDs for equality) 471.97 435.59 B
0.31 0.06 (.) 564.17 435.59 B
0.06 (errors) 471.97 428.12 S
0.06 (none) 504.53 428.12 S
2 5.43 Q
(void) 428.56 418.63 T
(pthread_exit\050 void *status = NULL \051;) 450.27 418.63 T
0 6.03 Q
0.31 0.06 (T) 471.97 409.18 B
0.31 0.06 (erminate the calling thread.) 475.29 409.18 B
0.06 (errors) 471.97 401.71 S
0.06 (none) 504.53 401.71 S
2 5.43 Q
(int) 428.56 392.22 T
(pthread_join\050 pthread_t thread, void **status =) 450.27 392.22 T
5 F
(NULL) 606.55 392.22 T
2 F
( \051;) 619.57 392.22 T
0 6.03 Q
0.31 0.06 (Synchronize with the termination of a thread.) 471.97 382.78 B
0.06 (errors) 471.97 375.3 S
3 F
0.31 0.06 (EINV) 504.53 375.3 B
0.31 0.06 (AL) 519.07 375.3 B
0 F
0.31 0.06 (,) 527.56 375.3 B
3 F
0.31 0.06 (ESRCH) 531.01 375.3 B
0 F
0.31 0.06 (,) 552.08 375.3 B
3 F
0.31 0.06 (EDEADLK) 555.53 375.3 B
0 F
0.06 (note) 471.97 367.82 S
0.31 0.06 (This function is a cancellation point.) 504.53 367.82 B
2 5.43 Q
(#include <sched.h>) 428.56 358.34 T
(int) 428.56 349.29 T
(pthread_getschedparam\050 pthread_t thread, int *policy, struct sched_param *param \051;) 450.27 349.29 T
0 6.03 Q
0.31 0.06 (Get the scheduling policy and parameters of the speci\336ed thread.) 471.97 339.85 B
0.06 (control) 471.97 332.37 S
3 F
0.06 (_POSIX_THREAD_PRIORITY_SCHEDULING) 504.53 332.37 S
0 F
0.06 (errors) 471.97 324.89 S
3 F
0.31 0.06 (ENOSYS) 504.53 324.89 B
0 F
0.31 0.06 (,) 529.02 324.89 B
3 F
0.31 0.06 (ESRCH) 532.46 324.89 B
2 5.43 Q
(#include <sched.h>) 428.56 315.41 T
(int) 428.56 306.36 T
(pthread_setschedparam\050 pthread_t thread, int policy,) 450.27 306.36 T
(const struct sched_param *param \051;) 515.38 297.32 T
0.66 0.05 (void *stackaddr) 428.56 659.32 B
3 F
0.05 (_POSIX_THREAD_A) 504.53 659.32 S
0.05 (TTR_ST) 556.8 659.32 S
0.05 (ACKADDR) 577.23 659.32 S
2 F
0.66 0.05 (void *stack) 634.76 659.32 B
0.66 0.05 (int detachstate) 428.56 649.07 B
3 F
0.05 (_POSIX_THREADS) 504.53 649.07 S
0.05 (PTHREAD_CREA) 634.76 649.07 S
0.05 (TE_DET) 679.63 649.07 S
0.05 (ACHED,) 700.66 649.07 S
0.05 (PTHREAD_CREA) 634.76 638.82 S
0.05 (TE_JOINABLE) 679.63 638.82 S
1 F
0.28 0.05 (T) 515.38 682.23 B
0.28 0.05 (able 0-3) 517.96 682.23 B
0 F
0.28 0.05 (Thread Attributes) 541.43 682.23 B
3 F
0.28 0.05 (Name and T) 428.56 669.57 B
0.28 0.05 (ype) 457.91 669.57 B
0.28 0.05 (Featur) 504.53 669.57 B
0.28 0.05 (e T) 520.43 669.57 B
0.28 0.05 (est Macr) 527.76 669.57 B
0.28 0.05 (o) 548.72 669.57 B
0.05 (V) 634.76 669.57 S
0.05 (alue\050s\051) 638.24 669.57 S
428.56 676.81 732.44 676.81 2 L
V
0 Z
N
428.56 666.56 732.44 666.56 2 L
V
0.3 H
N
428.56 635.81 732.44 635.81 2 L
V
0.18 H
N
FMENDPAGE
%%EndPage: "mini" 2
%%Page: "mini" 3
612 792 1 FMBEGINPAGE
[0 0 0 1 0 0 0]
[ 0 1 1 0 1 0 0]
[ 1 0 1 0 0 1 0]
[ 1 1 0 0 0 0 1]
[ 1 0 0 0 0 1 1]
[ 0 1 0 0 1 0 1]
[ 0 0 1 0 1 1 0]
 7 FrameSetSepColors
FrameNoSep
27 -62.74 639 729.26 C
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
1 1 0 0 0 0 1 K
0 5.43 Q
0 X
1 1 0 0 0 0 1 K
0.05 (5) 59.56 274.65 S
0 0 0 1 0 0 0 K
1 1 0 0 0 0 1 K
1 F
-0.35 0.05 (POSIX.1c/D10 Summary) 146.38 274.65 B
0 F
-0.35 0.05 (\321) 201.37 274.65 B
1 F
-0.35 0.05 (May 1995) 206.85 274.65 B
0 0 0 1 0 0 0 K
363.44 702.13 59.56 702.13 2 L
0.18 H
2 Z
0 0 0 1 0 0 0 K
N
138.55 345.64 264.41 356.19 R
7 X
V
0 6.03 Q
0 X
0.31 0.06 (Set the scheduling policy and parameters of the speci\336ed thread.) 102.97 681.83 B
0.06 (control) 102.97 674.35 S
3 F
0.06 (_POSIX_THREAD_PRIORITY_SCHEDULING) 135.53 674.35 S
0 F
0.06 (errors) 102.97 666.88 S
3 F
0.31 0.06 (ENOSYS) 135.53 666.88 B
0 F
0.31 0.06 (,) 160.01 666.88 B
3 F
0.31 0.06 (EINV) 163.46 666.88 B
0.31 0.06 (AL) 178 666.88 B
0 F
0.31 0.06 (,) 186.5 666.88 B
3 F
0.31 0.06 (ENOTSUP) 189.94 666.88 B
0 F
0.31 0.06 (,) 218.17 666.88 B
3 F
0.31 0.06 (EPERM) 221.62 666.88 B
0 F
0.31 0.06 (,) 243.7 666.88 B
3 F
0.31 0.06 (ESRCH) 247.14 666.88 B
2 F
0.06 (policy) 102.97 659.4 S
0 F
0.31 0.06 ({) 135.53 659.4 B
3 F
0.31 0.06 (SCHED_RR) 140.37 659.4 B
0 F
0.31 0.06 (,) 173.34 659.4 B
3 F
0.31 0.06 (SCHED_FIFO) 176.79 659.4 B
0 F
0.31 0.06 (,) 215.58 659.4 B
3 F
0.31 0.06 (SCHED_OTHER) 219.03 659.4 B
0 F
0.31 0.06 ( }) 265.26 659.4 B
1 9.04 Q
-0.56 (Mutex Attributes) 59.56 639.06 P
0 6.03 Q
0.31 0.06 (All mutex attributes are set in a mutex attribute object by a function of the form:) 102.97 626 B
2 5.43 Q
(int) 124.68 616.51 T
(pthread_mutexattr_set) 146.38 616.51 T
4 F
(name) 214.76 616.51 T
2 F
(\050 pthread_attr_t *attr,) 227.78 616.51 T
4 F
(Type) 305.92 616.51 T
2 F
( t \051;) 318.94 616.51 T
0 6.03 Q
0.31 0.06 (All mutex attributes are retrieved from a mutex attribute object by a function of the form:) 102.97 604.66 B
2 5.43 Q
(int) 124.68 595.17 T
(pthread_mutexattr_get) 146.38 595.17 T
4 F
(name) 214.76 595.17 T
2 F
(\050 const pthread_attr_t *attr,) 227.78 595.17 T
4 F
(Type) 325.45 595.17 T
2 F
( *t \051;) 338.48 595.17 T
0 6.03 Q
0.31 0.06 (Where) 102.97 583.31 B
4 F
0.74 0.06 (name) 121.22 583.31 B
0 F
0.31 0.06 ( and) 135.93 583.31 B
4 F
0.74 0.06 (Type) 148.58 583.31 B
0 F
0.31 0.06 ( are from the table below) 163.29 583.31 B
2 5.43 Q
(int) 59.56 480.97 T
(pthread_mutexattr_init\050 pthread_mutexattr_t *attr \051;) 81.27 480.97 T
0 6.03 Q
0.31 0.06 (Initialize a mutex attribute object.) 102.97 471.53 B
0.06 (errors) 102.97 464.05 S
3 F
0.06 (ENOMEM) 135.53 464.05 S
2 5.43 Q
(int) 59.56 454.57 T
(pthread_mutexattr_destroy\050 pthread_mutexattr_t *attr \051;) 81.27 454.57 T
0 6.03 Q
0.31 0.06 (Destroy a mutex attribute object.) 102.97 445.12 B
0.06 (errors) 102.97 437.64 S
3 F
0.06 (EINV) 135.53 437.64 S
0.06 (AL) 150.07 437.64 S
1 9.04 Q
-0.56 (Mutex Usage) 59.56 417.3 P
2 5.43 Q
(int) 59.56 405.85 T
(pthread_mutex_init\050 pthread_mutex_t *mutex, const pthread_mutexattr_t *attr =) 81.27 405.85 T
5 F
(NULL) 335.22 405.85 T
2 F
( \051;) 348.25 405.85 T
(pthread_mutex_t) 59.56 396.8 T
(mutex) 124.68 396.8 T
(=) 168.09 396.8 T
5 F
(PTHREAD_MUTEX_INITIALIZER) 174.6 396.8 T
2 F
(;) 256 396.8 T
0 6.03 Q
0.31 0.06 (Initialize a mutex.) 102.97 387.36 B
0.06 (errors) 102.97 379.88 S
3 F
0.31 0.06 (EAGAIN) 135.53 379.88 B
0 F
0.31 0.06 (,) 160.01 379.88 B
3 F
0.31 0.06 (ENOMEM) 163.46 379.88 B
0 F
0.31 0.06 (,) 192.29 379.88 B
3 F
0.31 0.06 (EPERM) 195.74 379.88 B
0 F
0.31 0.06 (,) 217.81 379.88 B
3 F
0.31 0.06 (EBUSY) 221.26 379.88 B
0 F
0.31 0.06 (,) 240.89 379.88 B
3 F
0.31 0.06 (EINV) 244.34 379.88 B
0.31 0.06 (AL) 258.87 379.88 B
2 5.43 Q
(int) 59.56 370.39 T
(pthread_mutex_destroy\050 pthread_mutex_t *mutex \051;) 81.27 370.39 T
0 6.03 Q
0.31 0.06 (Destroy a mutex.) 102.97 360.95 B
0.06 (errors) 102.97 353.47 S
3 F
0.31 0.06 (EBUSY) 135.53 353.47 B
0 F
0.31 0.06 (,) 155.15 353.47 B
3 F
0.31 0.06 (EINV) 158.6 353.47 B
0.31 0.06 (AL) 173.14 353.47 B
2 5.43 Q
(int) 59.56 343.99 T
(pthread_mutex_getprioceiling\050 const pthread_mutex_t *mutex, int *prioceiling \051;) 81.27 343.99 T
0 6.03 Q
0.31 0.06 (Get the) 102.97 334.54 B
2 F
0.74 0.06 (prioceiling) 123.17 334.54 B
0 F
0.31 0.06 ( value of the speci\336ed mutex.) 163.63 334.54 B
0.06 (control) 102.97 327.06 S
3 F
0.06 (_POSIX_THREAD_PRIO_PROTECT) 135.53 327.06 S
0 F
0.06 (errors) 102.97 319.59 S
3 F
0.31 0.06 (ENOSYS) 135.53 319.59 B
0 F
0.31 0.06 (,) 160.01 319.59 B
3 F
0.31 0.06 (EINV) 163.46 319.59 B
0.31 0.06 (AL) 178 319.59 B
0 F
0.31 0.06 (,) 186.5 319.59 B
3 F
0.31 0.06 (EPERM) 189.94 319.59 B
2 5.43 Q
(int) 59.56 310.1 T
(pthread_mutex_setprioceiling\050 pthread_mutex_t *mutex, int prioceiling,) 81.27 310.1 T
(int *old_ceiling \051;) 146.38 301.06 T
1 F
0.28 0.05 (T) 146.38 570.45 B
0.28 0.05 (able 0-4) 148.96 570.45 B
0 F
0.28 0.05 (Mutex Attributes) 172.43 570.45 B
3 F
0.28 0.05 (Name and T) 59.56 557.79 B
0.28 0.05 (ype) 88.91 557.79 B
0.28 0.05 (Featur) 135.53 557.79 B
0.28 0.05 (e T) 151.43 557.79 B
0.28 0.05 (est Macr) 158.76 557.79 B
0.28 0.05 (o) 179.72 557.79 B
0.05 (V) 276.62 557.79 S
0.05 (alue\050s\051) 280.09 557.79 S
2 F
0.66 0.05 (int protocol) 59.56 547.54 B
3 F
0.05 (_POSIX_THREAD_PRIO_INHERIT) 135.53 547.54 S
0.05 (,) 224.27 547.54 S
0.05 (PTHREAD_PRIO_NONE,) 276.62 547.54 S
0.05 (_POSIX_THREAD_PRIO_PROTECT) 135.53 537.29 S
0.05 (PTHREAD_PRIO_PROTECT) 276.62 537.29 S
0.05 (,) 349.05 537.29 S
0.05 (PTHREAD_PRIO_INHERIT) 276.62 527.04 S
2 F
0.66 0.05 (int pshared) 59.56 516.79 B
3 F
0.05 (_POSIX_THREAD_PROCESS_SHARED) 135.53 516.79 S
0.05 (PTHREAD_PROCESS_SHARED,) 276.62 516.79 S
0.05 (PTHREAD_PROCESS_PRIV) 276.62 506.54 S
0.05 (A) 347.25 506.54 S
0.05 (TE) 350.82 506.54 S
2 F
0.66 0.05 (int prioceiling) 59.56 496.29 B
3 F
0.05 (_POSIX_THREAD_PRIO_PROTECT) 135.53 496.29 S
0 F
0.28 0.05 (POSIX.1b, Section 13) 276.62 496.29 B
59.56 565.02 385.15 565.02 2 L
V
0 Z
N
59.56 554.77 385.15 554.77 2 L
V
0.3 H
N
59.56 493.27 385.15 493.27 2 L
V
0.18 H
N
396 -62.74 1008 729.26 C
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
1 1 0 0 0 0 1 K
0 0 0 1 0 0 0 K
1 1 0 0 0 0 1 K
1 5.43 Q
0 X
1 1 0 0 0 0 1 K
-0.35 0.05 (POSIX.1c/D10 Summary) 515.38 274.65 B
0 0 0 1 0 0 0 K
1 1 0 0 0 0 1 K
0 F
0.05 (6) 729.67 274.65 S
0 0 0 1 0 0 0 K
732.44 702.13 428.56 702.13 2 L
0.18 H
2 Z
0 0 0 1 0 0 0 K
N
507.55 345.64 633.41 356.19 R
7 X
V
0 6.03 Q
0 X
0.31 0.06 (Set the) 471.97 681.83 B
2 F
0.74 0.06 (prioceiling) 491.17 681.83 B
0 F
0.31 0.06 ( value and return the old) 531.62 681.83 B
2 F
0.74 0.06 (prioceiling) 595.35 681.83 B
0 F
0.31 0.06 ( value in the speci\336ed mutex.) 635.81 681.83 B
0.06 (control) 471.97 674.35 S
3 F
0.06 (_POSIX_THREAD_PRIO_PROTECT) 504.53 674.35 S
0 F
0.06 (errors) 471.97 666.88 S
3 F
0.31 0.06 (ENOSYS) 504.53 666.88 B
0 F
0.31 0.06 (,) 529.02 666.88 B
3 F
0.31 0.06 (EINV) 532.46 666.88 B
0.31 0.06 (AL) 547 666.88 B
0 F
0.31 0.06 (,) 555.5 666.88 B
3 F
0.31 0.06 (EPERM) 558.94 666.88 B
2 5.43 Q
(int) 428.56 657.39 T
(pthread_mutex_lock\050 pthread_mutex_t *mutex \051;) 450.27 657.39 T
0 6.03 Q
0.31 0.06 (Acquire the indicated mutex.) 471.97 647.95 B
0.06 (errors) 471.97 640.47 S
3 F
0.31 0.06 (EINV) 504.53 640.47 B
0.31 0.06 (AL) 519.07 640.47 B
0 F
0.31 0.06 (,) 527.56 640.47 B
3 F
0.31 0.06 (EDEADLK) 531.01 640.47 B
2 5.43 Q
(int) 428.56 630.98 T
(pthread_mutex_trylock\050 pthread_mutex_t *mutex \051;) 450.27 630.98 T
0 6.03 Q
0.31 0.06 (Attempt to acquire the indicated mutex.) 471.97 621.54 B
0.06 (errors) 471.97 614.06 S
3 F
0.31 0.06 (EINV) 504.53 614.06 B
0.31 0.06 (AL) 519.07 614.06 B
0 F
0.31 0.06 (,) 527.56 614.06 B
3 F
0.31 0.06 (EBUSY) 531.01 614.06 B
0 F
0.31 0.06 (,) 550.64 614.06 B
3 F
0.31 0.06 (EINV) 554.09 614.06 B
0.31 0.06 (AL) 568.62 614.06 B
2 5.43 Q
(int) 428.56 604.58 T
(pthread_mutex_unlock\050 pthread_mutex_t *mutex \051;) 450.27 604.58 T
0 6.03 Q
0.31 0.06 (Release the \050previously acquired\051 mutex.) 471.97 595.13 B
0.06 (errors) 471.97 587.65 S
3 F
0.31 0.06 (EINV) 504.53 587.65 B
0.31 0.06 (AL) 519.07 587.65 B
0 F
0.31 0.06 (,) 527.56 587.65 B
3 F
0.31 0.06 (EPERM) 531.01 587.65 B
1 9.04 Q
-0.56 (Once-only Execution) 428.56 567.31 P
2 5.43 Q
(pthread_once_t) 428.56 555.86 T
(once) 493.68 555.86 T
(=) 515.38 555.86 T
5 F
(PTHREAD_ONCE_INIT) 521.9 555.86 T
2 F
(;) 577.24 555.86 T
0 6.03 Q
0.31 0.06 (Initialize a once control variable.) 471.97 546.41 B
2 5.43 Q
(int) 428.56 536.93 T
(pthread_once\050 pthread_once_t *once_control, void \050*init_routine\051\050void\051 \051;) 450.27 536.93 T
0 6.03 Q
0.31 0.06 (Execute) 471.97 527.48 B
2 F
0.74 0.06 (init_routine) 493.7 527.48 B
0 F
0.31 0.06 ( once.) 537.83 527.48 B
0.06 (errors) 471.97 520 S
0.31 0.06 (none speci\336ed) 504.53 520 B
1 9.04 Q
-0.56 (Condition V) 428.56 499.67 P
-0.56 (ariable Attributes) 470.96 499.67 P
0 6.03 Q
0.17 0.06 (All condition variable attributes are set in a condition variable attribute object by a function of the form:) 471.97 486.6 B
2 5.43 Q
(int) 493.68 477.11 T
(pthread_condattr_set) 515.38 477.11 T
4 F
(name) 580.5 477.11 T
2 F
(\050 pthread_condattr_t *attr,) 593.52 477.11 T
4 F
(Type) 684.69 477.11 T
2 F
( t \051;) 697.71 477.11 T
0 6.03 Q
0.22 0.06 (All condition variable attributes are retreived from a condition variable attribute object by a function of) 471.97 465.26 B
0.31 0.06 (the form:) 471.97 457.78 B
2 5.43 Q
(int) 493.68 448.3 T
-0.72 (pthread_condattr_get) 515.38 448.3 P
4 F
-0.72 (name) 580.5 448.3 P
2 F
-0.72 (\050 const pthread_condattr_t *attr,) 593.52 448.3 P
4 F
-0.72 (Type) 701.33 448.3 P
2 F
-0.72 ( *t \051;) 714.35 448.3 P
0 6.03 Q
0.31 0.06 (Where) 471.97 436.44 B
4 F
0.74 0.06 (name) 490.22 436.44 B
0 F
0.31 0.06 ( and) 504.93 436.44 B
4 F
0.74 0.06 (Type) 517.58 436.44 B
0 F
0.31 0.06 ( are from the table below) 532.29 436.44 B
2 5.43 Q
(int) 428.56 375.1 T
(pthread_condattr_init\050 pthread_condattr_t *attr \051;) 450.27 375.1 T
0 6.03 Q
0.31 0.06 (Initialize a condition variable attribute object.) 471.97 365.65 B
0.06 (errors) 471.97 358.18 S
3 F
0.06 (ENOMEM) 504.53 358.18 S
2 5.43 Q
(int) 428.56 348.69 T
(pthread_condattr_destroy\050 pthread_condattr_t *attr \051;) 450.27 348.69 T
0 6.03 Q
0.31 0.06 (Destroy a condition variable attribute object.) 471.97 339.24 B
0.06 (errors) 471.97 331.77 S
3 F
0.06 (EINV) 504.53 331.77 S
0.06 (AL) 519.07 331.77 S
1 9.04 Q
-0.56 (Condition V) 428.56 311.43 P
-0.56 (ariable Usage) 470.96 311.43 P
2 5.43 Q
(int) 428.56 299.97 T
(pthread_cond_init\050 pthread_cond_t *cond,) 450.27 299.97 T
1 F
0.28 0.05 (T) 515.38 423.57 B
0.28 0.05 (able 0-5) 517.96 423.57 B
0 F
0.28 0.05 (Condition V) 541.43 423.57 B
0.28 0.05 (ariable Attributes) 568.69 423.57 B
3 F
0.28 0.05 (Name and T) 428.56 410.91 B
0.28 0.05 (ype) 457.91 410.91 B
0.28 0.05 (Featur) 482.82 410.91 B
0.28 0.05 (e T) 498.72 410.91 B
0.28 0.05 (est Macr) 506.05 410.91 B
0.28 0.05 (o) 527.01 410.91 B
0.05 (V) 623.91 410.91 S
0.05 (alue\050s\051) 627.38 410.91 S
2 F
0.66 0.05 (int pshared) 428.56 400.66 B
3 F
0.05 (_POSIX_THREAD_PROCESS_SHARED) 482.82 400.66 S
0.05 (PTHREAD_PROCESS_SHARED,) 623.91 400.66 S
0.05 (PTHREAD_PROCESS_PRIV) 623.91 390.41 S
0.05 (A) 694.54 390.41 S
0.05 (TE) 698.11 390.41 S
428.56 418.15 732.44 418.15 2 L
V
0 Z
N
428.56 407.9 732.44 407.9 2 L
V
0.3 H
N
428.56 387.4 732.44 387.4 2 L
V
0.18 H
N
FMENDPAGE
%%EndPage: "mini" 3
%%Page: "mini" 4
612 792 1 FMBEGINPAGE
[0 0 0 1 0 0 0]
[ 0 1 1 0 1 0 0]
[ 1 0 1 0 0 1 0]
[ 1 1 0 0 0 0 1]
[ 1 0 0 0 0 1 1]
[ 0 1 0 0 1 0 1]
[ 0 0 1 0 1 1 0]
 7 FrameSetSepColors
FrameNoSep
27 -62.74 639 729.26 C
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
1 1 0 0 0 0 1 K
0 5.43 Q
0 X
1 1 0 0 0 0 1 K
0.05 (7) 59.56 274.65 S
0 0 0 1 0 0 0 K
1 1 0 0 0 0 1 K
1 F
-0.35 0.05 (POSIX.1c/D10 Summary) 146.38 274.65 B
0 F
-0.35 0.05 (\321) 201.37 274.65 B
1 F
-0.35 0.05 (May 1995) 206.85 274.65 B
0 0 0 1 0 0 0 K
363.44 702.13 59.56 702.13 2 L
0.18 H
2 Z
0 0 0 1 0 0 0 K
N
138.55 345.64 264.41 356.19 R
7 X
V
2 F
0 X
(const pthread_condattr_t *attr =) 146.38 682.23 T
5 F
(NULL) 253.83 682.23 T
2 F
( \051;) 266.85 682.23 T
(pthread_cond_t) 59.56 673.19 T
(cond) 124.68 673.19 T
(=) 168.09 673.19 T
5 F
(PTHREAD_COND_INITIALIZER) 174.6 673.19 T
2 F
(;) 252.74 673.19 T
0 6.03 Q
0.31 0.06 (Initialize a condition variable.) 102.97 663.74 B
0.06 (errors) 102.97 656.27 S
3 F
0.31 0.06 (EAGAIN) 135.53 656.27 B
0 F
0.31 0.06 (,) 160.01 656.27 B
3 F
0.31 0.06 (ENOMEM) 163.46 656.27 B
0 F
0.31 0.06 (,) 192.29 656.27 B
3 F
0.31 0.06 (EBUSY) 195.74 656.27 B
0 F
0.31 0.06 (,) 215.36 656.27 B
3 F
0.31 0.06 (EINV) 218.81 656.27 B
0.31 0.06 (AL) 233.35 656.27 B
2 5.43 Q
(int) 59.56 646.78 T
(pthread_cond_destroy\050 pthread_cond_t *cond \051;) 81.27 646.78 T
0 6.03 Q
0.31 0.06 (Destroy a condition variable.) 102.97 637.34 B
0.06 (errors) 102.97 629.86 S
3 F
0.31 0.06 (EBUSY) 135.53 629.86 B
0 F
0.31 0.06 (,) 155.15 629.86 B
3 F
0.31 0.06 (EINV) 158.6 629.86 B
0.31 0.06 (AL) 173.14 629.86 B
2 5.43 Q
(int) 59.56 620.37 T
(pthread_cond_signal\050 pthread_cond_t *cond \051;) 81.27 620.37 T
0 6.03 Q
0.31 0.06 (Unblock at least one thread currently blocked in the speci\336ed condition variable.) 102.97 610.93 B
0.06 (errors) 102.97 603.45 S
3 F
0.06 (EINV) 135.53 603.45 S
0.06 (AL) 150.07 603.45 S
2 5.43 Q
(int) 59.56 593.96 T
(pthread_cond_broadcast\050 pthread_cond_t *cond \051;) 81.27 593.96 T
0 6.03 Q
0.31 0.06 (Unblock all threads currently blocked on the speci\336ed condition variable.) 102.97 584.52 B
0.06 (errors) 102.97 577.04 S
3 F
0.06 (EINV) 135.53 577.04 S
0.06 (AL) 150.07 577.04 S
2 5.43 Q
(int) 59.56 567.55 T
(pthread_cond_wait\050 pthread_cond_t *cond, pthread_mutex_t *mutex \051;) 81.27 567.55 T
0 6.03 Q
0.31 0.06 (Block on the speci\336ed condition variable.) 102.97 558.11 B
0.06 (errors) 102.97 550.63 S
3 F
0.06 (EINV) 135.53 550.63 S
0.06 (AL) 150.07 550.63 S
0 F
0.06 (note) 102.97 543.16 S
0.31 0.06 (This function is a cancellation point.) 135.53 543.16 B
2 5.43 Q
(int) 59.56 533.67 T
(pthread_cond_timedwait\050 pthread_cond_t *cond, pthread_mutex_t *mutex,) 81.27 533.67 T
(const struct timespec *abstime \051;) 146.38 524.63 T
0 6.03 Q
0.31 0.06 (Block on the speci\336ed condition variable not longer than the speci\336ed absolute time.) 102.97 515.18 B
0.06 (errors) 102.97 507.7 S
3 F
0.31 0.06 (ETIMEDOUT) 135.53 507.7 B
0 F
0.31 0.06 (,) 173.15 507.7 B
3 F
0.31 0.06 (EINV) 176.6 507.7 B
0.31 0.06 (AL) 191.13 507.7 B
0 F
0.06 (note) 102.97 500.23 S
0.31 0.06 (This function is a cancellation point.) 135.53 500.23 B
1 9.04 Q
-0.56 (Thr) 59.56 479.89 P
-0.56 (ead Speci\336c Data) 72.29 479.89 P
2 5.43 Q
(int) 59.56 468.43 T
(pthread_key_create\050 pthread_key_t *key, void \050*destructor\051\050void *\051 =) 81.27 468.43 T
5 F
(NULL) 305.92 468.43 T
2 F
( \051;) 318.94 468.43 T
0 6.03 Q
0.31 0.06 (Create a thread-speci\336c data key) 102.97 458.99 B
0.31 0.06 (.) 184.45 458.99 B
0.06 (errors) 102.97 451.51 S
3 F
0.31 0.06 (EAGAIN) 135.53 451.51 B
0 F
0.31 0.06 (,) 160.01 451.51 B
3 F
0.31 0.06 (ENOMEM) 163.46 451.51 B
0 F
0.06 (note) 102.97 444.03 S
0.31 0.06 (system limit of) 135.53 444.03 B
3 F
0.31 0.06 (PTHREAD_KEYS_MAX) 175.12 444.03 B
0 F
0.31 0.06 ( per process.) 242.41 444.03 B
0.31 0.06 (system limit of) 135.53 436.56 B
3 F
0.31 0.06 (PTHREAD_DESTRUCT) 175.12 436.56 B
0.31 0.06 (OR_ITERA) 241.3 436.56 B
0.31 0.06 (TIONS) 272.49 436.56 B
0 F
0.31 0.06 ( calls to) 291.56 436.56 B
2 F
0.74 0.06 (destructor) 313.36 436.56 B
0 F
0.31 0.06 ( per) 350.14 436.56 B
0.31 0.06 (thread exit.) 135.53 429.08 B
2 5.43 Q
(int) 59.56 419.6 T
(pthread_key_delete\050 pthread_key_t key \051;) 81.27 419.6 T
0 6.03 Q
0.31 0.06 (Destroy a thread-speci\336c data key) 102.97 410.15 B
0.31 0.06 (.) 187.86 410.15 B
0.06 (errors) 102.97 402.67 S
3 F
0.06 (EINV) 135.53 402.67 S
0.06 (AL) 150.07 402.67 S
2 5.43 Q
(void) 59.56 393.19 T
(*pthread_getspecific\050 pthread_key_t key \051;) 81.27 393.19 T
0 6.03 Q
0.31 0.06 (Return the value bound to the given key for the calling thread.) 102.97 383.74 B
0.06 (errors) 102.97 376.26 S
0.06 (none) 135.53 376.26 S
2 5.43 Q
(int) 59.56 366.78 T
(pthread_setspecific\050 pthread_key_t key, const void *value \051;) 81.27 366.78 T
0 6.03 Q
0.31 0.06 (Set the value for the given key in the calling thread.) 102.97 357.33 B
0.06 (errors) 102.97 349.86 S
3 F
0.31 0.06 (ENOMEM) 135.53 349.86 B
0 F
0.31 0.06 (,) 164.36 349.86 B
3 F
0.31 0.06 (EINV) 167.81 349.86 B
0.31 0.06 (AL) 182.35 349.86 B
1 9.04 Q
-0.56 (Signal Management) 59.56 329.52 P
2 5.43 Q
(#include <signal.h>) 59.56 318.06 T
(int) 59.56 309.02 T
(pthread_sigmask\050 int how, const sigset_t *newmask =) 81.27 309.02 T
5 F
(NULL) 250.57 309.02 T
2 F
(, sigset_t *oldmask =) 263.59 309.02 T
5 F
(NULL) 335.22 309.02 T
2 F
( \051;) 348.25 309.02 T
0 6.03 Q
0.31 0.06 (Examine or change calling threads signal mask.) 102.97 299.57 B
396 -62.74 1008 729.26 C
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
0 0 0 1 0 0 0 K
1 1 0 0 0 0 1 K
0 0 0 1 0 0 0 K
1 1 0 0 0 0 1 K
1 5.43 Q
0 X
1 1 0 0 0 0 1 K
-0.35 0.05 (POSIX.1c/D10 Summary) 515.38 274.65 B
0 0 0 1 0 0 0 K
1 1 0 0 0 0 1 K
0 F
0.05 (8) 729.67 274.65 S
0 0 0 1 0 0 0 K
732.44 702.13 428.56 702.13 2 L
0.18 H
2 Z
0 0 0 1 0 0 0 K
N
507.55 345.64 633.41 356.19 R
7 X
V
0 6.03 Q
0 X
0.06 (errors) 471.97 681.83 S
3 F
0.06 (EINV) 504.53 681.83 S
0.06 (AL) 519.07 681.83 S
2 F
0.06 (how) 471.97 674.35 S
0 F
0.31 0.06 ({) 504.53 674.35 B
3 F
0.31 0.06 (SIG_BLOCK) 509.37 674.35 B
0 F
0.31 0.06 (,) 545.09 674.35 B
3 F
0.31 0.06 (SIG_UNBLOCK) 548.54 674.35 B
0 F
0.31 0.06 (,) 593.09 674.35 B
3 F
0.31 0.06 (SIG_SETMASK) 596.54 674.35 B
0 F
0.31 0.06 ( }) 640.09 674.35 B
2 5.43 Q
(#include <signal.h>) 428.56 664.87 T
(int) 428.56 655.83 T
(pthread_kill\050 pthread_t thread, int signo \051;) 450.27 655.83 T
0 6.03 Q
0.31 0.06 (Deliver signal to indicated thread.) 471.97 646.38 B
0.06 (errors) 471.97 638.9 S
3 F
0.31 0.06 (ESRCH) 504.53 638.9 B
0 F
0.31 0.06 (,) 525.6 638.9 B
3 F
0.31 0.06 (EINV) 529.05 638.9 B
0.31 0.06 (AL) 543.59 638.9 B
2 5.43 Q
(#include <signal.h>) 428.56 629.42 T
(int) 428.56 620.37 T
(sigwait\050 const sigset_t *set, int *sig \051;) 450.27 620.37 T
0 6.03 Q
0.31 0.06 (Synchronously accept a signal.) 471.97 610.93 B
0.06 (errors) 471.97 603.45 S
3 F
0.31 0.06 (EINV) 504.53 603.45 B
0.31 0.06 (AL) 519.07 603.45 B
0 F
0.31 0.06 (,) 527.56 603.45 B
3 F
0.31 0.06 (EINTR) 531.01 603.45 B
0 F
0.06 (note) 471.97 595.97 S
0.31 0.06 (This function is a cancellation point.) 504.53 595.97 B
1 9.04 Q
(Cancellation) 428.56 575.64 T
2 5.43 Q
(int) 428.56 564.18 T
(pthread_setcancelstate\050 int state, int *oldstate \051;) 450.27 564.18 T
0 6.03 Q
0.31 0.06 (Set the cancellation state for the calling thread.) 471.97 554.73 B
0.06 (errors) 471.97 547.26 S
3 F
0.06 (EINV) 504.53 547.26 S
0.06 (AL) 519.07 547.26 S
2 F
0.06 (state) 471.97 539.78 S
0 F
0.31 0.06 ({) 504.53 539.78 B
3 F
0.31 0.06 (PTHREAD_CANCEL_ENABLE) 509.37 539.78 B
0 F
0.31 0.06 (,) 596.39 539.78 B
3 F
0.31 0.06 (PTHREAD_CANCEL_DISABLE) 599.84 539.78 B
0 F
0.31 0.06 ( }) 688.59 539.78 B
2 5.43 Q
(int) 428.56 530.29 T
(pthread_setcanceltype\050 int type, int *oldtype \051;) 450.27 530.29 T
0 6.03 Q
0.31 0.06 (Set the cancellation type for the calling thread.) 471.97 520.85 B
0.06 (errors) 471.97 513.37 S
3 F
0.06 (EINV) 504.53 513.37 S
0.06 (AL) 519.07 513.37 S
2 F
0.06 (type) 471.97 505.89 S
0 F
0.31 0.06 ({) 504.53 505.89 B
3 F
0.31 0.06 (PTHREAD_CANCEL_DEFERRED) 509.37 505.89 B
0 F
0.31 0.06 (,) 604.88 505.89 B
3 F
0.31 0.06 (PTHREAD_CANCEL_ASYNCHRONOUS) 608.32 505.89 B
0 F
0.31 0.06 ( }) 722.16 505.89 B
2 5.43 Q
(int) 428.56 496.41 T
(pthread_cancel\050 pthread_t thread \051;) 450.27 496.41 T
0 6.03 Q
0.31 0.06 (Cancel the speci\336ed thread.) 471.97 486.96 B
0.06 (errors) 471.97 479.49 S
3 F
0.06 (ESRCH) 504.53 479.49 S
0 F
0.06 (note) 471.97 472.01 S
0.31 0.06 (threads that have been cancelled terminate with a status of) 504.53 472.01 B
3 F
0.31 0.06 (PTHREAD_CANCELED.) 653.27 472.01 B
2 5.43 Q
(void) 428.56 462.52 T
(pthread_testcancel\050 void \051;) 450.27 462.52 T
0 6.03 Q
0.31 0.06 (Introduce a cancellation point.) 471.97 453.08 B
0.06 (errors) 471.97 445.6 S
0.06 (none) 504.53 445.6 S
0.06 (note) 471.97 438.12 S
0.31 0.06 (This function is a cancellation point.) 504.53 438.12 B
2 5.43 Q
(void) 428.56 428.64 T
(pthread_cleanup_pop\050 int execute \051;) 450.27 428.64 T
0 6.03 Q
0.31 0.06 (Pop the top item from the cancellation stack and optionally execute it.) 471.97 419.19 B
0.06 (errors) 471.97 411.72 S
0.31 0.06 (none speci\336ed) 504.53 411.72 B
0.06 (note) 471.97 404.24 S
0.31 0.06 (push and pop operations must appear at the same lexical level.) 504.53 404.24 B
2 F
0.06 (execute) 471.97 396.76 S
0 F
0.31 0.06 ({ 1, 0 }) 504.53 396.76 B
2 5.43 Q
(void) 428.56 387.28 T
(pthread_cleanup_push\050 void \050*routine\051\050void *\051, void *arg \051;) 450.27 387.28 T
0 6.03 Q
0.31 0.06 (Push an item onto the cancellation stack.) 471.97 377.83 B
0.06 (errors) 471.97 370.36 S
0.31 0.06 (none speci\336ed) 504.53 370.36 B
FMENDPAGE
%%EndPage: "mini" 4
%%Trailer
%%BoundingBox: 0 0 612 792
%%PageOrder: Descend
%%Pages: 4
%%DocumentFonts: Times-Roman
%%+ Times-Italic
%%+ Courier
%%+ Times-Bold
%%+ Courier-Oblique
%%+ Courier-Bold
%%EOF