dns.server: do work in separate thread
							parent
							
								
									1883929dee
								
							
						
					
					
						commit
						b8f1d71d2e
					
				| 
						 | 
				
			
			@ -1,8 +1,8 @@
 | 
			
		|||
 | 
			
		||||
USING: kernel combinators sequences sets math
 | 
			
		||||
USING: kernel combinators sequences sets math threads
 | 
			
		||||
       io.sockets unicode.case accessors
 | 
			
		||||
       combinators.cleave combinators.lib
 | 
			
		||||
       newfx
 | 
			
		||||
       newfx fry
 | 
			
		||||
       dns dns.util dns.misc ;
 | 
			
		||||
 | 
			
		||||
IN: dns.server
 | 
			
		||||
| 
						 | 
				
			
			@ -204,15 +204,18 @@ DEFER: query->rrs
 | 
			
		|||
 | 
			
		||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 | 
			
		||||
 | 
			
		||||
: loop ( -- )
 | 
			
		||||
  socket receive
 | 
			
		||||
  swap
 | 
			
		||||
: (handle-request) ( byte-array addr-spec -- )
 | 
			
		||||
  >r
 | 
			
		||||
  parse-message
 | 
			
		||||
  find-answer
 | 
			
		||||
  message->ba
 | 
			
		||||
  swap
 | 
			
		||||
  socket send
 | 
			
		||||
  loop ;
 | 
			
		||||
  r>
 | 
			
		||||
  socket send ;
 | 
			
		||||
 | 
			
		||||
: handle-request ( byte-array addr-spec -- )
 | 
			
		||||
  '[ , , (handle-request) ] in-thread ;
 | 
			
		||||
 | 
			
		||||
: loop ( -- ) socket receive handle-request loop ;
 | 
			
		||||
 | 
			
		||||
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue