Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Jul 2004 16:06:35 -0700
From:      Julian Elischer <julian@elischer.org>
To:        threads@freebsd.org, John Baldwin <jhb@freebsd.org>
Subject:   thread state diagram
Message-ID:  <410982FB.5060306@elischer.org>

next in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------080906010605000700090807
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit

Here is a .png image of a diagram of thread states (as they will be 
after my next commits)
and the source for the picture (using tgif)

any comments or corrections?

the next commits will make very small differences only, mostly in exiting.


--------------080906010605000700090807
Content-Type: text/plain;
 name="thread-state.obj"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="thread-state.obj"

%TGIF 4.1.42-QPL
state(1,37,100.000,0,0,0,16,1,9,1,1,0,0,1,0,1,0,'Courier',0,80640,0,0,0,10,0,0,1,0,0,16,0,0,1,1,1,1,1408,1088,1,0,2880,0).
%
% @(#)$Header$
% %W%
%
unit("1 pixel/pixel").
color_info(11,65535,0,[
	"magenta", 65535, 0, 65535, 65535, 0, 65535, 1,
	"red", 65535, 0, 0, 65535, 0, 0, 1,
	"green", 0, 65535, 0, 0, 65535, 0, 1,
	"blue", 0, 0, 65535, 0, 0, 65535, 1,
	"yellow", 65535, 65535, 0, 65535, 65535, 0, 1,
	"pink", 65535, 48830, 52942, 65535, 49344, 52171, 1,
	"cyan", 0, 65535, 65535, 0, 65535, 65535, 1,
	"CadetBlue", 25443, 40606, 40092, 24415, 40606, 41120, 1,
	"white", 65535, 65535, 65535, 65535, 65535, 65535, 1,
	"black", 0, 0, 0, 0, 0, 0, 1,
	"DarkSlateGray", 12593, 19789, 21074, 12079, 20303, 20303, 1
]).
script_frac("0.6").
fg_bg_colors('black','white').
dont_reencode("FFDingbests:ZapfDingbats").
page(1,"",1,'').
group([
box('blue','',96,64,160,128,0,1,1,0,0,0,0,0,0,'1',0,[
]),
text('black',112,83,2,0,1,42,36,1,13,5,0,0,0,0,2,42,36,0,1,"",0,0,0,0,96,'',[
minilines(42,36,0,1,0,0,0,[
mini_line(28,13,5,0,1,0,[
str_block(0,28,13,5,0,1,0,0,0,[
str_seg('blue','Courier',0,80640,28,13,5,0,1,0,0,0,0,0,
	"free")])
]),
mini_line(42,13,5,0,1,0,[
str_block(0,42,13,5,0,1,0,0,0,[
str_seg('blue','Courier',0,80640,42,13,5,0,1,0,0,0,0,0,
	"memory")])
])
])])
],
5,0,0,[
]).
group([
box('blue','',192,64,272,128,0,1,1,6,0,0,0,0,0,'1',0,[
]),
text('black',192,67,2,0,1,70,36,7,13,5,0,0,0,0,2,70,36,0,1,"",0,0,0,0,80,'',[
minilines(70,36,0,1,0,0,0,[
mini_line(70,13,5,0,1,0,[
str_block(0,70,13,5,0,1,0,0,0,[
str_seg('blue','Courier',0,80640,70,13,5,0,1,0,0,0,0,0,
	" thread in")])
]),
mini_line(70,13,5,0,1,0,[
str_block(0,70,13,5,0,1,0,0,0,[
str_seg('blue','Courier',0,80640,70,13,5,0,1,0,0,0,0,0,
	" UMA cache")])
])
])])
],
15,0,0,[
]).
group([
box('blue','',304,64,384,128,0,1,1,23,0,0,0,0,0,'1',0,[
]),
text('black',304,67,3,0,1,70,54,22,13,5,0,0,0,0,2,70,54,0,1,"",0,0,0,0,80,'',[
minilines(70,54,0,1,0,0,0,[
mini_line(49,13,5,0,0,0,[
str_block(0,49,13,5,0,-6,0,0,0,[
str_seg('blue','Courier',0,80640,49,13,5,0,-6,0,0,0,0,0,
	"thread ")])
]),
mini_line(70,13,5,0,1,0,[
str_block(0,70,13,5,0,1,0,0,0,[
str_seg('blue','Courier',0,80640,70,13,5,0,1,0,0,0,0,0,
	"on proc in")])
]),
mini_line(63,13,5,0,1,0,[
str_block(0,63,13,5,0,1,0,0,0,[
str_seg('blue','Courier',0,80640,63,13,5,0,1,0,0,0,0,0,
	"UMA cache")])
])
])])
],
21,0,0,[
]).
group([
box('blue','',425,64,505,128,0,1,1,26,0,0,0,0,0,'1',0,[
]),
text('black',425,67,2,0,1,63,36,25,13,5,0,0,0,0,2,63,36,0,1,"",0,0,0,0,80,'',[
minilines(63,36,0,1,0,0,0,[
mini_line(63,13,5,0,1,0,[
str_block(0,63,13,5,0,1,0,0,0,[
str_seg('blue','Courier',0,80640,63,13,5,0,1,0,0,0,0,0,
	"thread on")])
]),
mini_line(63,13,5,0,1,0,[
str_block(0,63,13,5,0,1,0,0,0,[
str_seg('blue','Courier',0,80640,63,13,5,0,1,0,0,0,0,0,
	"live proc")])
])
])])
],
24,0,0,[
]).
group([
box('blue','',528,64,608,128,0,1,1,29,0,0,0,0,0,'1',0,[
]),
text('black',528,67,3,0,1,56,54,28,13,5,0,0,0,0,2,56,54,0,1,"",0,0,0,0,80,'',[
minilines(56,54,0,1,0,0,0,[
mini_line(49,13,5,0,0,0,[
str_block(0,49,13,5,0,-6,0,0,0,[
str_seg('blue','Courier',0,80640,49,13,5,0,-6,0,0,0,0,0,
	"thread ")])
]),
mini_line(56,13,5,0,1,0,[
str_block(0,56,13,5,0,1,0,0,0,[
str_seg('blue','Courier',0,80640,56,13,5,0,1,0,0,0,0,0,
	"runnable")])
]),
mini_line(42,13,5,0,1,0,[
str_block(0,42,13,5,0,1,0,0,0,[
str_seg('blue','Courier',0,80640,42,13,5,0,1,0,0,0,0,0,
	"single")])
])
])])
],
27,0,0,[
]).
group([
box('blue','',640,64,720,128,0,1,1,32,0,0,0,0,0,'1',0,[
]),
text('black',640,67,3,0,1,49,54,31,13,5,0,0,0,0,2,49,54,0,1,"",0,0,0,0,80,'',[
minilines(49,54,0,1,0,0,0,[
mini_line(42,13,5,0,1,0,[
str_block(0,42,13,5,0,1,0,0,0,[
str_seg('blue','Courier',0,80640,42,13,5,0,1,0,0,0,0,0,
	"thread")])
]),
mini_line(49,13,5,0,1,0,[
str_block(0,49,13,5,0,1,0,0,0,[
str_seg('blue','Courier',0,80640,49,13,5,0,1,0,0,0,0,0,
	"running")])
]),
mini_line(42,13,5,0,1,0,[
str_block(0,42,13,5,0,1,0,0,0,[
str_seg('blue','Courier',0,80640,42,13,5,0,1,0,0,0,0,0,
	"single")])
])
])])
],
30,0,0,[
]).
group([
box('blue','',752,64,832,128,0,1,1,35,0,0,0,0,0,'1',0,[
]),
text('black',752,67,3,0,1,63,54,34,13,5,0,0,0,0,2,63,54,0,1,"",0,0,0,0,80,'',[
minilines(63,54,0,1,0,0,0,[
mini_line(42,13,5,0,1,0,[
str_block(0,42,13,5,0,1,0,0,0,[
str_seg('blue','Courier',0,80640,42,13,5,0,1,0,0,0,0,0,
	"thread")])
]),
mini_line(63,13,5,0,1,0,[
str_block(0,63,13,5,0,1,0,0,0,[
str_seg('blue','Courier',0,80640,63,13,5,0,1,0,0,0,0,0,
	"inhibited")])
]),
mini_line(42,13,5,0,1,0,[
str_block(0,42,13,5,0,1,0,0,0,[
str_seg('blue','Courier',0,80640,42,13,5,0,1,0,0,0,0,0,
	"single")])
])
])])
],
33,0,0,[
]).
group([
box('red','',512,224,592,288,0,1,1,38,0,0,0,0,0,'1',0,[
]),
text('black',512,227,2,0,1,49,36,37,13,5,0,0,0,0,2,49,36,0,1,"",0,0,0,0,240,'',[
minilines(49,36,0,1,0,0,0,[
mini_line(42,13,5,0,1,0,[
str_block(0,42,13,5,0,1,0,0,0,[
str_seg('red','Courier',0,80640,42,13,5,0,1,0,0,0,0,0,
	"thread")])
]),
mini_line(49,13,5,0,1,0,[
str_block(0,49,13,5,0,1,0,0,0,[
str_seg('red','Courier',0,80640,49,13,5,0,1,0,0,0,0,0,
	"exiting")])
])
])])
],
36,0,0,[
]).
group([
box('red','',400,224,480,288,0,1,1,41,0,0,0,0,0,'1',0,[
]),
text('black',400,227,3,0,1,70,54,40,13,5,0,0,0,0,2,70,54,0,1,"",0,0,0,0,240,'',[
minilines(70,54,0,1,0,0,0,[
mini_line(63,13,5,0,1,0,[
str_block(0,63,13,5,0,1,0,0,0,[
str_seg('red','Courier',0,80640,63,13,5,0,1,0,0,0,0,0,
	"thread on")])
]),
mini_line(35,13,5,0,0,0,[
str_block(0,35,13,5,0,-6,0,0,0,[
str_seg('red','Courier',0,80640,35,13,5,0,-6,0,0,0,0,0,
	"PCPU ")])
]),
mini_line(70,13,5,0,1,0,[
str_block(0,70,13,5,0,1,0,0,0,[
str_seg('red','Courier',0,80640,70,13,5,0,1,0,0,0,0,0,
	"deadthread")])
])
])])
],
39,0,0,[
]).
group([
box('red','',288,224,368,288,0,1,1,44,0,0,0,0,0,'1',0,[
]),
text('black',288,227,3,0,1,70,54,43,13,5,0,0,0,0,2,70,54,0,1,"",0,0,0,0,240,'',[
minilines(70,54,0,1,0,0,0,[
mini_line(70,13,5,0,1,0,[
str_block(0,70,13,5,0,1,0,0,0,[
str_seg('red','Courier',0,80640,70,13,5,0,1,0,0,0,0,0,
	" thread in")])
]),
mini_line(56,13,5,0,1,0,[
str_block(0,56,13,5,0,1,0,0,0,[
str_seg('red','Courier',0,80640,56,13,5,0,1,0,0,0,0,0,
	" reap GC")])
]),
mini_line(28,13,5,0,0,0,[
str_block(0,28,13,5,0,0,0,0,0,[
str_seg('red','Courier',0,80640,28,13,5,0,0,0,0,0,0,0,
	"List")])
])
])])
],
42,0,0,[
]).
group([
box('red','',512,352,592,416,0,1,1,79,0,0,0,0,0,'1',0,[
]),
text('black',512,355,3,0,1,63,54,80,13,5,0,0,0,0,2,63,54,0,1,"",0,0,0,0,368,'',[
minilines(63,54,0,1,0,0,0,[
mini_line(49,13,5,0,0,0,[
str_block(0,49,13,5,0,-6,0,0,0,[
str_seg('red','Courier',0,80640,49,13,5,0,-6,0,0,0,0,0,
	"thread ")])
]),
mini_line(63,13,5,0,0,0,[
str_block(0,63,13,5,0,-1,0,0,0,[
str_seg('red','Courier',0,80640,63,13,5,0,-1,0,0,0,0,0,
	"runnable,")])
]),
mini_line(35,13,5,0,1,0,[
str_block(0,35,13,5,0,1,0,0,0,[
str_seg('red','Courier',0,80640,35,13,5,0,1,0,0,0,0,0,
	"multi")])
])
])])
],
78,0,0,[
]).
group([
box('red','',624,352,704,416,0,1,1,82,0,0,0,0,0,'1',0,[
]),
text('black',624,355,3,0,1,49,54,83,13,5,0,0,0,0,2,49,54,0,1,"",0,0,0,0,368,'',[
minilines(49,54,0,1,0,0,0,[
mini_line(42,13,5,0,1,0,[
str_block(0,42,13,5,0,1,0,0,0,[
str_seg('red','Courier',0,80640,42,13,5,0,1,0,0,0,0,0,
	"thread")])
]),
mini_line(49,13,5,0,1,0,[
str_block(0,49,13,5,0,1,0,0,0,[
str_seg('red','Courier',0,80640,49,13,5,0,1,0,0,0,0,0,
	"running")])
]),
mini_line(35,13,5,0,1,0,[
str_block(0,35,13,5,0,1,0,0,0,[
str_seg('red','Courier',0,80640,35,13,5,0,1,0,0,0,0,0,
	"multi")])
])
])])
],
81,0,0,[
]).
group([
box('red','',752,352,832,416,0,1,1,85,0,0,0,0,0,'1',0,[
]),
text('black',752,355,3,0,1,63,54,86,13,5,0,0,0,0,2,63,54,0,1,"",0,0,0,0,368,'',[
minilines(63,54,0,1,0,0,0,[
mini_line(42,13,5,0,1,0,[
str_block(0,42,13,5,0,1,0,0,0,[
str_seg('red','Courier',0,80640,42,13,5,0,1,0,0,0,0,0,
	"thread")])
]),
mini_line(63,13,5,0,1,0,[
str_block(0,63,13,5,0,1,0,0,0,[
str_seg('red','Courier',0,80640,63,13,5,0,1,0,0,0,0,0,
	"inhibited")])
]),
mini_line(35,13,5,0,1,0,[
str_block(0,35,13,5,0,1,0,0,0,[
str_seg('red','Courier',0,80640,35,13,5,0,1,0,0,0,0,0,
	"multi")])
])
])])
],
84,0,0,[
]).
poly('red','',3,[
	288,256,256,256,256,128],1,1,1,117,0,0,0,0,0,0,0,'1',0,0,
    "0","",[
    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
]).
poly('blue','',2,[
	160,96,192,96],1,1,1,118,0,0,0,0,0,0,0,'1',0,0,
    "0","",[
    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
]).
poly('blue','',2,[
	272,96,304,96],1,1,1,120,0,0,0,0,0,0,0,'1',0,0,
    "0","",[
    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
]).
poly('blue','',2,[
	496,96,528,96],1,1,1,122,0,0,0,0,0,0,0,'1',0,0,
    "0","",[
    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
]).
poly('blue','',2,[
	608,96,640,96],1,1,1,123,0,0,0,0,0,0,0,'1',0,0,
    "0","",[
    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
]).
poly('blue','',2,[
	720,96,752,96],1,1,1,125,0,0,0,0,0,0,0,'1',0,0,
    "0","",[
    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
]).
poly('red','',2,[
	672,128,672,352],1,1,1,129,0,0,0,0,0,0,0,'1',0,0,
    "0","",[
    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
]).
poly('red','',2,[
	704,384,752,384],1,1,1,131,0,0,0,0,0,0,0,'1',0,0,
    "0","",[
    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
]).
poly('red','',2,[
	688,352,688,128],1,1,1,168,0,0,0,0,0,0,0,'1',0,0,
    "0","",[
    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
]).
group([
box('blue','',496,144,576,208,0,1,1,170,0,0,0,0,0,'1',0,[
]),
text('black',496,147,3,0,1,63,54,171,13,5,0,0,0,0,2,63,54,0,1,"",0,0,0,0,160,'',[
minilines(63,54,0,1,0,0,0,[
mini_line(63,13,5,0,1,0,[
str_block(0,63,13,5,0,1,0,0,0,[
str_seg('blue','Courier',0,80640,63,13,5,0,1,0,0,0,0,0,
	"thread on")])
]),
mini_line(49,13,5,0,1,0,[
str_block(0,49,13,5,0,1,0,0,0,[
str_seg('blue','Courier',0,80640,49,13,5,0,1,0,0,0,0,0,
	"exiting")])
]),
mini_line(28,13,5,0,1,0,[
str_block(0,28,13,5,0,1,0,0,0,[
str_seg('blue','Courier',0,80640,28,13,5,0,1,0,0,0,0,0,
	"proc")])
])
])])
],
169,0,0,[
]).
group([
box('blue','',384,144,464,208,0,1,1,173,0,0,0,0,0,'1',0,[
]),
text('black',384,147,3,0,1,63,54,174,13,5,0,0,0,0,2,63,54,0,1,"",0,0,0,0,160,'',[
minilines(63,54,0,1,0,0,0,[
mini_line(63,13,5,0,1,0,[
str_block(0,63,13,5,0,1,0,0,0,[
str_seg('blue','Courier',0,80640,63,13,5,0,1,0,0,0,0,0,
	"thread on")])
]),
mini_line(42,13,5,0,1,0,[
str_block(0,42,13,5,0,1,0,0,0,[
str_seg('blue','Courier',0,80640,42,13,5,0,1,0,0,0,0,0,
	"zombie")])
]),
mini_line(28,13,5,0,1,0,[
str_block(0,28,13,5,0,1,0,0,0,[
str_seg('blue','Courier',0,80640,28,13,5,0,1,0,0,0,0,0,
	"proc")])
])
])])
],
172,0,0,[
]).
poly('blue','',2,[
	496,176,464,176],1,1,1,175,0,0,0,0,0,0,0,'1',0,0,
    "0","",[
    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
]).
group([
box('red','',288,352,368,416,0,1,1,188,0,0,0,0,0,'1',0,[
]),
text('black',288,355,3,0,1,49,54,189,13,5,0,0,0,0,2,49,54,0,1,"",0,0,0,0,368,'',[
minilines(49,54,0,1,0,0,0,[
mini_line(35,13,5,0,1,0,[
str_block(0,35,13,5,0,1,0,0,0,[
str_seg('red','Courier',0,80640,35,13,5,0,1,0,0,0,0,0,
	"spare")])
]),
mini_line(21,13,5,0,0,0,[
str_block(0,21,13,5,0,-6,0,0,0,[
str_seg('red','Courier',0,80640,21,13,5,0,-6,0,0,0,0,0,
	"on ")])
]),
mini_line(49,13,5,0,1,0,[
str_block(0,49,13,5,0,1,0,0,0,[
str_seg('red','Courier',0,80640,49,13,5,0,1,0,0,0,0,0,
	"sibling")])
])
])])
],
187,0,0,[
]).
poly('red','',2,[
	368,384,512,384],1,1,1,198,0,0,0,0,0,0,0,'1',0,0,
    "0","",[
    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
]).
poly('blue','',2,[
	192,112,160,112],1,1,1,212,0,0,0,0,0,0,0,'1',0,0,
    "0","",[
    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
]).
poly('blue','',2,[
	384,96,432,96],1,1,1,217,0,0,0,0,0,0,0,'1',0,0,
    "0","",[
    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
]).
poly('red','',3,[
	208,128,208,384,288,384],1,1,1,227,0,0,0,0,0,0,0,'1',0,0,
    "0","",[
    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
]).
poly('red','',2,[
	592,384,624,384],1,1,1,286,0,0,0,0,0,0,0,'1',0,0,
    "0","",[
    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
]).
poly('red','',3,[
	288,368,224,368,224,128],1,1,1,304,0,0,0,0,0,0,0,'1',0,0,
    "0","",[
    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
]).
poly('blue','',6,[
	832,96,848,96,848,48,512,48,512,80,528,80],1,1,1,339,0,0,0,0,0,0,0,'1',0,0,
    "00","",[
    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
]).
poly('red','',6,[
	832,384,864,384,864,432,480,432,480,400,512,400],1,1,1,340,0,0,0,0,0,0,0,'1',0,0,
    "00","",[
    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
]).
poly('red','',2,[
	512,256,480,256],1,1,1,345,0,0,0,0,0,0,0,'1',0,0,
    "0","",[
    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
]).
poly('red','',2,[
	400,256,368,256],1,1,1,346,0,0,0,0,0,0,0,'1',0,0,
    "0","",[
    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
]).
poly('red','',3,[
	640,352,640,256,592,256],1,1,1,375,0,0,0,0,0,0,0,'1',0,0,
    "0","",[
    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
]).
poly('blue','',3,[
	656,128,656,176,576,176],1,1,1,377,0,0,0,0,0,0,0,'1',0,0,
    "0","",[
    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
]).
poly('blue','',3,[
	384,176,336,176,336,128],1,1,1,378,0,0,0,0,0,0,0,'1',0,0,
    "0","",[
    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
]).
poly('blue','',2,[
	304,112,272,112],1,1,1,1318,0,0,0,0,0,0,0,'1',0,0,
    "0","",[
    0,8,3,0,'8','3','0'],[0,8,3,0,'8','3','0'],[
]).
text('blue',176,83,1,0,1,7,18,1340,13,5,0,0,0,0,2,7,18,0,0,"",0,0,0,0,96,'',[
minilines(7,18,0,0,0,0,0,[
mini_line(7,13,5,0,0,0,[
str_block(0,7,13,5,0,0,0,0,0,[
str_seg('blue','Courier',0,80640,7,13,5,0,0,0,0,0,0,0,
	"1")])
])
])]).
text('blue',288,83,1,0,1,7,18,1342,13,5,0,0,0,0,2,7,18,0,0,"",0,0,0,0,96,'',[
minilines(7,18,0,0,0,0,0,[
mini_line(7,13,5,0,0,0,[
str_block(0,7,13,5,0,0,0,0,0,[
str_seg('blue','Courier',0,80640,7,13,5,0,0,0,0,0,0,0,
	"2")])
])
])]).
text('blue',176,99,1,0,1,7,18,1344,13,5,0,0,0,0,2,7,18,0,0,"",0,0,0,0,112,'',[
minilines(7,18,0,0,0,0,0,[
mini_line(7,13,5,0,0,0,[
str_block(0,7,13,5,0,0,0,0,0,[
str_seg('blue','Courier',0,80640,7,13,5,0,0,0,0,0,0,0,
	"3")])
])
])]).
text('blue',288,99,1,0,1,7,18,1346,13,5,0,0,0,0,2,7,18,0,0,"",0,0,0,0,112,'',[
minilines(7,18,0,0,0,0,0,[
mini_line(7,13,5,0,0,0,[
str_block(0,7,13,5,0,0,0,0,0,[
str_seg('blue','Courier',0,80640,7,13,5,0,0,0,0,0,0,0,
	"4")])
])
])]).
text('blue',400,83,1,0,1,7,18,1348,13,5,0,0,0,0,2,7,18,0,0,"",0,0,0,0,96,'',[
minilines(7,18,0,0,0,0,0,[
mini_line(7,13,5,0,0,0,[
str_block(0,7,13,5,0,0,0,0,0,[
str_seg('blue','Courier',0,80640,7,13,5,0,0,0,0,0,0,0,
	"5")])
])
])]).
text('blue',512,83,1,0,1,7,18,1350,13,5,0,0,0,0,2,7,18,0,0,"",0,0,0,0,96,'',[
minilines(7,18,0,0,0,0,0,[
mini_line(7,13,5,0,0,0,[
str_block(0,7,13,5,0,0,0,0,0,[
str_seg('blue','Courier',0,80640,7,13,5,0,0,0,0,0,0,0,
	"6")])
])
])]).
text('blue',560,35,1,0,1,7,18,1352,13,5,0,0,0,0,2,7,18,0,0,"",0,0,0,0,48,'',[
minilines(7,18,0,0,0,0,0,[
mini_line(7,13,5,0,0,0,[
str_block(0,7,13,5,0,-1,0,0,0,[
str_seg('blue','Courier',0,80640,7,13,5,0,-1,0,0,0,0,0,
	"7")])
])
])]).
text('blue',624,83,1,0,1,7,18,1354,13,5,0,0,0,0,2,7,18,0,0,"",0,0,0,0,96,'',[
minilines(7,18,0,0,0,0,0,[
mini_line(7,13,5,0,0,0,[
str_block(0,7,13,5,0,0,0,0,0,[
str_seg('blue','Courier',0,80640,7,13,5,0,0,0,0,0,0,0,
	"8")])
])
])]).
text('blue',736,83,1,0,1,7,18,1356,13,5,0,0,0,0,2,7,18,0,0,"",0,0,0,0,96,'',[
minilines(7,18,0,0,0,0,0,[
mini_line(7,13,5,0,0,0,[
str_block(0,7,13,5,0,0,0,0,0,[
str_seg('blue','Courier',0,80640,7,13,5,0,0,0,0,0,0,0,
	"9")])
])
])]).
text('blue',608,163,1,0,1,14,18,1358,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,176,'',[
minilines(14,18,0,0,0,0,0,[
mini_line(14,13,5,0,0,0,[
str_block(0,14,13,5,0,0,0,0,0,[
str_seg('blue','Courier',0,80640,14,13,5,0,0,0,0,0,0,0,
	"10")])
])
])]).
text('blue',480,163,1,0,1,14,18,1360,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,176,'',[
minilines(14,18,0,0,0,0,0,[
mini_line(14,13,5,0,0,0,[
str_block(0,14,13,5,0,0,0,0,0,[
str_seg('blue','Courier',0,80640,14,13,5,0,0,0,0,0,0,0,
	"11")])
])
])]).
text('red',656,195,1,0,1,14,18,1366,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,208,'',[
minilines(14,18,0,0,0,0,0,[
mini_line(14,13,5,0,0,0,[
str_block(0,14,13,5,0,0,0,0,0,[
str_seg('red','Courier',0,80640,14,13,5,0,0,0,0,0,0,0,
	"12")])
])
])]).
text('red',688,195,1,0,1,14,18,1370,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,208,'',[
minilines(14,18,0,0,0,0,0,[
mini_line(14,13,5,0,0,0,[
str_block(0,14,13,5,0,0,0,0,0,[
str_seg('red','Courier',0,80640,14,13,5,0,0,0,0,0,0,0,
	"13")])
])
])]).
text('red',720,371,1,0,1,14,18,1372,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,384,'',[
minilines(14,18,0,0,0,0,0,[
mini_line(14,13,5,0,0,0,[
str_block(0,14,13,5,0,0,0,0,0,[
str_seg('red','Courier',0,80640,14,13,5,0,0,0,0,0,0,0,
	"14")])
])
])]).
text('red',720,419,1,0,1,14,18,1374,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,432,'',[
minilines(14,18,0,0,0,0,0,[
mini_line(14,13,5,0,0,0,[
str_block(0,14,13,5,0,0,0,0,0,[
str_seg('red','Courier',0,80640,14,13,5,0,0,0,0,0,0,0,
	"15")])
])
])]).
text('red',624,291,1,0,1,14,18,1378,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,304,'',[
minilines(14,18,0,0,0,0,0,[
mini_line(14,13,5,0,0,0,[
str_block(0,14,13,5,0,-1,0,0,0,[
str_seg('red','Courier',0,80640,14,13,5,0,-1,0,0,0,0,0,
	"17")])
])
])]).
text('red',496,243,1,0,1,14,18,1380,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,256,'',[
minilines(14,18,0,0,0,0,0,[
mini_line(14,13,5,0,0,0,[
str_block(0,14,13,5,0,0,0,0,0,[
str_seg('red','Courier',0,80640,14,13,5,0,0,0,0,0,0,0,
	"18")])
])
])]).
text('red',384,243,1,0,1,14,18,1382,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,256,'',[
minilines(14,18,0,0,0,0,0,[
mini_line(14,13,5,0,0,0,[
str_block(0,14,13,5,0,0,0,0,0,[
str_seg('red','Courier',0,80640,14,13,5,0,0,0,0,0,0,0,
	"19")])
])
])]).
text('red',272,243,1,0,1,14,18,1384,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,256,'',[
minilines(14,18,0,0,0,0,0,[
mini_line(14,13,5,0,0,0,[
str_block(0,14,13,5,0,0,0,0,0,[
str_seg('red','Courier',0,80640,14,13,5,0,0,0,0,0,0,0,
	"20")])
])
])]).
text('red',400,387,1,0,1,14,18,1388,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,400,'',[
minilines(14,18,0,0,0,0,0,[
mini_line(14,13,5,0,0,0,[
str_block(0,14,13,5,0,0,0,0,0,[
str_seg('red','Courier',0,80640,14,13,5,0,0,0,0,0,0,0,
	"22")])
])
])]).
text('red',224,371,1,0,1,14,18,1390,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,384,'',[
minilines(14,18,0,0,0,0,0,[
mini_line(14,13,5,0,0,0,[
str_block(0,14,13,5,0,0,0,0,0,[
str_seg('red','Courier',0,80640,14,13,5,0,0,0,0,0,0,0,
	"23")])
])
])]).
text('red',240,355,1,0,1,14,18,1392,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,368,'',[
minilines(14,18,0,0,0,0,0,[
mini_line(14,13,5,0,0,0,[
str_block(0,14,13,5,0,0,0,0,0,[
str_seg('red','Courier',0,80640,14,13,5,0,0,0,0,0,0,0,
	"24")])
])
])]).
text('red',592,371,1,0,1,14,18,1405,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,384,'',[
minilines(14,18,0,0,0,0,0,[
mini_line(14,13,5,0,0,0,[
str_block(0,14,13,5,0,0,0,0,0,[
str_seg('red','Courier',0,80640,14,13,5,0,0,0,0,0,0,0,
	"16")])
])
])]).
text('blue',128,505,1,0,1,449,28,1407,23,5,0,0,0,0,2,449,28,0,0,"",0,0,0,0,528,'',[
minilines(449,28,0,0,0,0,0,[
mini_line(449,23,5,0,0,0,[
str_block(0,449,23,5,0,-2,0,0,0,[
str_seg('blue','NewCenturySchlbk-Roman',0,144000,449,23,5,0,-2,0,0,0,0,0,
	"BLUE - Normal nonthreaded operation.")])
])
])]).
text('blue',128,537,1,0,1,464,28,1409,23,5,0,0,0,0,2,464,28,0,0,"",0,0,0,0,560,'',[
minilines(464,28,0,0,0,0,0,[
mini_line(464,23,5,0,0,0,[
str_block(0,464,23,5,0,-1,0,0,0,[
str_seg('red','NewCenturySchlbk-Roman',0,138240,464,23,5,0,-1,0,0,0,0,0,
	"RED  -  Threaded operation, (KSE+THR)")])
])
])]).
text('blue',128,579,16,0,1,483,288,1417,13,5,0,0,0,0,2,483,288,0,1,"",0,0,0,0,592,'',[
minilines(483,288,0,1,0,0,0,[
mini_line(154,13,5,0,0,0,[
str_block(0,154,13,5,0,-1,0,0,0,[
str_seg('black','Courier',0,80640,154,13,5,0,-1,0,0,0,0,0,
	"1      - thread_init()")])
]),
mini_line(154,13,5,0,0,0,[
str_block(0,154,13,5,0,-1,0,0,0,[
str_seg('black','Courier',0,80640,154,13,5,0,-1,0,0,0,0,0,
	"2,23   - thread_ctor()")])
]),
mini_line(154,13,5,0,0,0,[
str_block(0,154,13,5,0,-1,0,0,0,[
str_seg('black','Courier',0,80640,154,13,5,0,-1,0,0,0,0,0,
	"3      - thread_fini()")])
]),
mini_line(161,13,5,0,0,0,[
str_block(0,161,13,5,0,-1,0,0,0,[
str_seg('black','Courier',0,80640,161,13,5,0,-1,0,0,0,0,0,
	"4,24,20 - thread_dtor()")])
]),
mini_line(308,13,5,0,0,0,[
str_block(0,308,13,5,0,-1,0,0,0,[
str_seg('black','Courier',0,80640,308,13,5,0,-1,0,0,0,0,0,
	"5      - fork1 via proc_alloc(), proc_ctor()")])
]),
mini_line(273,13,5,0,0,0,[
str_block(0,273,13,5,0,-1,0,0,0,[
str_seg('black','Courier',0,80640,273,13,5,0,-1,0,0,0,0,0,
	"6,7,15,22 - setrunnable()/setrunqueue()")])
]),
mini_line(273,13,5,0,0,0,[
str_block(0,273,13,5,0,-1,0,0,0,[
str_seg('black','Courier',0,80640,273,13,5,0,-1,0,0,0,0,0,
	"8,16   - choosethread() via mi_switch()")])
]),
mini_line(483,13,5,0,0,0,[
str_block(0,483,13,5,0,-1,0,0,0,[
str_seg('black','Courier',0,80640,483,13,5,0,-1,0,0,0,0,0,
	"9,14   - various- msleep/mutex, etc. via mi_switch() via cpu_switch()")])
]),
mini_line(112,13,5,0,0,0,[
str_block(0,112,13,5,0,-1,0,0,0,[
str_seg('black','Courier',0,80640,112,13,5,0,-1,0,0,0,0,0,
	"10,11  - exit1()")])
]),
mini_line(245,13,5,0,0,0,[
str_block(0,245,13,5,0,-1,0,0,0,[
str_seg('black','Courier',0,80640,245,13,5,0,-1,0,0,0,0,0,
	"12     - thr_create(), kse_create()")])
]),
mini_line(392,13,5,0,0,0,[
str_block(0,392,13,5,0,-1,0,0,0,[
str_seg('black','Courier',0,80640,392,13,5,0,-1,0,0,0,0,0,
	"13     - (thr_exit(), kse_exit()) kern_execve(), exit1()")])
]),
mini_line(371,13,5,0,0,0,[
str_block(0,371,13,5,0,-1,0,0,0,[
str_seg('black','Courier',0,80640,371,13,5,0,-1,0,0,0,0,0,
	"17     - thread_exit(), from thr_exit() or kse_exit()")])
]),
mini_line(287,13,5,0,0,0,[
str_block(0,287,13,5,0,-1,0,0,0,[
str_seg('black','Courier',0,80640,287,13,5,0,-1,0,0,0,0,0,
	"18     - thread_exit() before cpu_throw()")])
]),
mini_line(364,13,5,0,1,0,[
str_block(0,364,13,5,0,1,0,0,0,[
str_seg('black','Courier',0,80640,364,13,5,0,1,0,0,0,0,0,
	"19     - mi_switch via thread_stash() after switchin")])
]),
mini_line(343,13,5,0,0,0,[
str_block(0,343,13,5,0,-1,0,0,0,[
str_seg('black','Courier',0,80640,343,13,5,0,-1,0,0,0,0,0,
	"21     - kern_wait() via proc_free(), proc_dtor()")])
]),
mini_line(0,13,5,0,0,0,[
str_block(0,0,13,5,0,0,0,0,0,[
str_seg('black','Courier',0,80640,0,13,5,0,0,0,0,0,0,0,
	"")])
])
])]).
text('blue',336,147,1,0,1,14,18,1429,13,5,0,0,0,0,2,14,18,0,0,"",0,0,0,0,160,'',[
minilines(14,18,0,0,0,0,0,[
mini_line(14,13,5,0,0,0,[
str_block(0,14,13,5,0,0,0,0,0,[
str_seg('blue','Courier',0,80640,14,13,5,0,0,0,0,0,0,0,
	"21")])
])
])]).

--------------080906010605000700090807--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?410982FB.5060306>