24 lines
		
	
	
		
			730 B
		
	
	
	
		
			Factor
		
	
	
		
		
			
		
	
	
			24 lines
		
	
	
		
			730 B
		
	
	
	
		
			Factor
		
	
	
|  | ! Copyright (C) 2008 Slava Pestov. | ||
|  | ! See http://factorcode.org/license.txt for BSD license. | ||
|  | USING: io.backend io.monitors | ||
|  | core-foundation.fsevents continuations kernel sequences | ||
|  | namespaces arrays system locals accessors destructors fry ;
 | ||
|  | IN: io.monitors.macosx | ||
|  | 
 | ||
|  | TUPLE: macosx-monitor < monitor handle ;
 | ||
|  | 
 | ||
|  | : enqueue-notifications ( triples monitor -- )
 | ||
|  |     '[ first { +modify-file+ } _ queue-change ] each ;
 | ||
|  | 
 | ||
|  | M:: macosx (monitor) ( path recursive? mailbox -- monitor )
 | ||
|  |     [let | path [ path normalize-path ] | | ||
|  |         path mailbox macosx-monitor new-monitor | ||
|  |         dup [ enqueue-notifications ] curry
 | ||
|  |         path 1array 0 0 <event-stream> >>handle | ||
|  |     ] ;
 | ||
|  | 
 | ||
|  | M: macosx-monitor dispose | ||
|  |     handle>> dispose ;
 | ||
|  | 
 | ||
|  | macosx set-io-backend |