| 
									
										
										
										
											2009-05-16 01:29:21 -04:00
										 |  |  | USING: tools.test concurrency.exchangers | 
					
						
							| 
									
										
										
										
											2008-02-18 17:20:18 -05:00
										 |  |  | concurrency.count-downs concurrency.promises locals kernel | 
					
						
							|  |  |  | threads ;
 | 
					
						
							| 
									
										
										
										
											2009-05-16 01:29:21 -04:00
										 |  |  | FROM: sequences => 3append ;
 | 
					
						
							| 
									
										
										
										
											2009-08-13 20:21:44 -04:00
										 |  |  | IN: concurrency.exchangers.tests | 
					
						
							| 
									
										
										
										
											2008-02-18 17:20:18 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-17 15:44:08 -04:00
										 |  |  | :: exchanger-test ( -- string )
 | 
					
						
							| 
									
										
										
										
											2009-10-27 22:50:31 -04:00
										 |  |  |     <exchanger> :> ex | 
					
						
							|  |  |  |     2 <count-down> :> c | 
					
						
							|  |  |  |     f :> v1! | 
					
						
							|  |  |  |     f :> v2! | 
					
						
							|  |  |  |     <promise> :> pr | 
					
						
							| 
									
										
										
										
											2008-02-18 17:20:18 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-27 22:50:31 -04:00
										 |  |  |     [ | 
					
						
							|  |  |  |         c await | 
					
						
							|  |  |  |         v1 ", " v2 3append pr fulfill | 
					
						
							|  |  |  |     ] "Awaiter" spawn drop
 | 
					
						
							| 
									
										
										
										
											2008-02-18 17:20:18 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-27 22:50:31 -04:00
										 |  |  |     [ | 
					
						
							|  |  |  |         "Goodbye world" ex exchange v1! c count-down | 
					
						
							|  |  |  |     ] "Exchanger 1" spawn drop
 | 
					
						
							| 
									
										
										
										
											2008-02-18 17:20:18 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-27 22:50:31 -04:00
										 |  |  |     [ | 
					
						
							|  |  |  |         "Hello world" ex exchange v2! c count-down | 
					
						
							|  |  |  |     ] "Exchanger 2" spawn drop
 | 
					
						
							| 
									
										
										
										
											2008-02-18 17:20:18 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-27 22:50:31 -04:00
										 |  |  |     pr ?promise ;
 | 
					
						
							| 
									
										
										
										
											2008-02-18 17:20:18 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | [ "Hello world, Goodbye world" ] [ exchanger-test ] unit-test |