-(defun async-test-1 ()
- (interactive)
- (message "Starting async-test-1...")
- (async-start
- ;; What to do in the child process
- (lambda ()
- (message "This is a test")
- (sleep-for 3)
- 222)
-
- ;; What to do when it finishes
- (lambda (result)
- (message "Async process done, result should be 222: %s" result)))
- (message "Starting async-test-1...done"))
-
-(defun async-test-2 ()
- (interactive)
- (message "Starting async-test-2...")
- (let ((proc (async-start
- ;; What to do in the child process
- (lambda ()
- (message "This is a test")
- (sleep-for 3)
- 222))))
- (message "I'm going to do some work here")
- ;; ....
- (message "Async process done, result should be 222: %s"
- (async-get proc))))
-
-(defun async-test-3 ()
- (interactive)
- (message "Starting async-test-3...")
- (async-start
- ;; What to do in the child process
- (lambda ()
- (message "This is a test")
- (sleep-for 3)
- (error "Error in child process")
- 222)
-
- ;; What to do when it finishes
- (lambda (result)
- (message "Async process done, result should be 222: %s" result)))
- (message "Starting async-test-1...done"))
-
-(defun async-test-4 ()
- (interactive)
- (message "Starting async-test-4...")
- (async-start-process "sleep" "sleep"
- ;; What to do when it finishes
- (lambda (proc)
- (message "Sleep done, exit code was %d"
- (process-exit-status proc)))
- "3")
- (message "Starting async-test-4...done"))
-
-(defun async-test-5 ()
- (interactive)
- (message "Starting async-test-5...")
- (let ((proc
- (async-start
- ;; What to do in the child process
- (lambda ()
- (message "This is a test, sending message")
- (async-send :hello "world")
- ;; wait for a message
- (let ((msg (async-receive)))
- (message "Child got message: %s"
- (plist-get msg :goodbye)))
- (sleep-for 3)
- 222)
-
- ;; What to do when it finishes
- (lambda (result)
- (if (async-message-p result)
- (message "Got hello from child process: %s"
- (plist-get result :hello))
- (message "Async process done, result should be 222: %s"
- result))))))
- (async-send proc :goodbye "everyone"))
- (message "Starting async-test-5...done"))
-
-(defun async-test-6 ()
- (interactive)
- (message "Starting async-test-6...")
- (async-start
- ;; What to do in the child process
- `(lambda ()
- ,(async-inject-variables "\\`user-mail-address\\'")
- (format "user-mail-address = %s" user-mail-address))
-
- ;; What to do when it finishes
- (lambda (result)
- (message "Async process done: %s" result))))
-