38 lines
		
	
	
		
			1008 B
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1008 B
		
	
	
	
		
			Factor
		
	
	
! Copyright (C) 2012 Eungju PARK.
 | 
						|
! See http://factorcode.org/license.txt for BSD license.
 | 
						|
USING: byte-arrays calendar destructors formatting io kernel
 | 
						|
math.parser strings threads zeromq zeromq.ffi ;
 | 
						|
IN: zeromq.examples.taskwork
 | 
						|
 | 
						|
: taskwork ( -- )
 | 
						|
    [
 | 
						|
        <zmq-context> &dispose
 | 
						|
 | 
						|
        [
 | 
						|
            ! Socket to receive messages on
 | 
						|
            ZMQ_PULL <zmq-socket> &dispose
 | 
						|
            dup "tcp://localhost:5557" zmq-connect
 | 
						|
        ] [
 | 
						|
            ! Socket to send messages to
 | 
						|
            ZMQ_PUSH <zmq-socket> &dispose
 | 
						|
            dup "tcp://localhost:5558" zmq-connect
 | 
						|
        ] bi
 | 
						|
 | 
						|
        ! Process tasks forever
 | 
						|
        [
 | 
						|
            over 0 zmq-recv >string
 | 
						|
            ! Simple progress indicator for the viewer
 | 
						|
            dup "%s." printf flush
 | 
						|
            ! Do the work
 | 
						|
            string>number milliseconds sleep
 | 
						|
            ! Send results to sink
 | 
						|
            dup "" >byte-array 0 zmq-send
 | 
						|
            t
 | 
						|
        ] loop
 | 
						|
 | 
						|
        drop
 | 
						|
        drop
 | 
						|
    ] with-destructors ;
 | 
						|
 | 
						|
MAIN: taskwork
 |