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
 |