| 
														
															@@ -684,13 +684,30 @@ selector: "initialize", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 category: 'initialization', 
														 | 
														
														 | 
														
															 category: 'initialization', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 fn: function (){ 
														 | 
														
														 | 
														
															 fn: function (){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 var self=this; 
														 | 
														
														 | 
														
															 var self=this; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-var $1; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-var sentinel; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+smalltalk.send(self,"_initialize",[],smalltalk.Object); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 self["@poolSize"]=(0); 
														 | 
														
														 | 
														
															 self["@poolSize"]=(0); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 self["@maxPoolSize"]=smalltalk.send(smalltalk.send(self,"_class",[]),"_defaultMaxPoolSize",[]); 
														 | 
														
														 | 
														
															 self["@maxPoolSize"]=smalltalk.send(smalltalk.send(self,"_class",[]),"_defaultMaxPoolSize",[]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 self["@queue"]=smalltalk.send((smalltalk.Queue || Queue),"_new",[]); 
														 | 
														
														 | 
														
															 self["@queue"]=smalltalk.send((smalltalk.Queue || Queue),"_new",[]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+self["@worker"]=smalltalk.send(self,"_makeWorker",[]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+return self}, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+args: [], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+source: "initialize\x0a    super initialize.\x0a\x09poolSize := 0.\x0a    maxPoolSize := self class defaultMaxPoolSize.\x0a    queue := Queue new.\x0a    worker := self makeWorker", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+messageSends: ["initialize", "defaultMaxPoolSize", "class", "new", "makeWorker"], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+referencedClasses: ["Queue"] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+}), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+smalltalk.ForkPool); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+smalltalk.addMethod( 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+"_makeWorker", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+smalltalk.method({ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+selector: "makeWorker", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+category: 'initialization', 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+fn: function (){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+var self=this; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+var $2,$1; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+var sentinel; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 sentinel=smalltalk.send((smalltalk.Object || Object),"_new",[]); 
														 | 
														
														 | 
														
															 sentinel=smalltalk.send((smalltalk.Object || Object),"_new",[]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-self["@worker"]=(function(){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+$1=(function(){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 var block; 
														 | 
														
														 | 
														
															 var block; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 self["@poolSize"]=smalltalk.send(self["@poolSize"],"__minus",[(1)]); 
														 | 
														
														 | 
														
															 self["@poolSize"]=smalltalk.send(self["@poolSize"],"__minus",[(1)]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 self["@poolSize"]; 
														 | 
														
														 | 
														
															 self["@poolSize"]; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -698,8 +715,8 @@ block=smalltalk.send(self["@queue"],"_frontIfAbsent_",[(function(){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 return sentinel; 
														 | 
														
														 | 
														
															 return sentinel; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 })]); 
														 | 
														
														 | 
														
															 })]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 block; 
														 | 
														
														 | 
														
															 block; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-$1=smalltalk.send(block,"__eq_eq",[sentinel]); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-if(! smalltalk.assert($1)){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+$2=smalltalk.send(block,"__eq_eq",[sentinel]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+if(! smalltalk.assert($2)){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 return smalltalk.send((function(){ 
														 | 
														
														 | 
														
															 return smalltalk.send((function(){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 return smalltalk.send(block,"_value",[]); 
														 | 
														
														 | 
														
															 return smalltalk.send(block,"_value",[]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }),"_ensure_",[(function(){ 
														 | 
														
														 | 
														
															 }),"_ensure_",[(function(){ 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -707,11 +724,12 @@ return smalltalk.send(self,"_addWorker",[]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 })]); 
														 | 
														
														 | 
														
															 })]); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }; 
														 | 
														
														 | 
														
															 }; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }); 
														 | 
														
														 | 
														
															 }); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-return self}, 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+return $1; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+}, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 args: [], 
														 | 
														
														 | 
														
															 args: [], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-source: "initialize\x0a\x09| sentinel |\x0a\x09poolSize := 0.\x0a    maxPoolSize := self class defaultMaxPoolSize.\x0a    queue := Queue new.\x0a    sentinel := Object new.\x0a    worker := [\x0a\x09\x09| block |\x0a        poolSize := poolSize - 1.\x0a\x09\x09block := queue frontIfAbsent: [ sentinel ].\x0a        block == sentinel ifFalse: [\x0a        \x09[ block value ] ensure: [ self addWorker ]]].", 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-messageSends: ["defaultMaxPoolSize", "class", "new", "-", "frontIfAbsent:", "ifFalse:", "ensure:", "addWorker", "value", "=="], 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-referencedClasses: ["Queue", "Object"] 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+source: "makeWorker\x0a\x09| sentinel |\x0a    sentinel := Object new.\x0a    ^[ | block |\x0a        poolSize := poolSize - 1.\x0a\x09\x09block := queue frontIfAbsent: [ sentinel ].\x0a        block == sentinel ifFalse: [\x0a        \x09[ block value ] ensure: [ self addWorker ]]]", 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+messageSends: ["new", "-", "frontIfAbsent:", "ifFalse:", "ensure:", "addWorker", "value", "=="], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+referencedClasses: ["Object"] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 }), 
														 | 
														
														 | 
														
															 }), 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 smalltalk.ForkPool); 
														 | 
														
														 | 
														
															 smalltalk.ForkPool); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 |