Function: pdf-info-local-batch-query
pdf-info-local-batch-query is a natively compiled function defined in
pdf-info.el.
Signature
(pdf-info-local-batch-query PRODUCER-FN CONSUMER-FN SENTINEL-FN ARGS)
Documentation
Process a set of queries asynchronously in a local instance.
Source Code
;; Defined in /nix/store/63h5z2vmzn0mfavcxi2idi23g5xcgkbl-emacs-packages-deps/share/emacs/site-lisp/elpa/pdf-tools-20260102.1101/pdf-info.el
(defun pdf-info-local-batch-query (producer-fn
consumer-fn
sentinel-fn
args)
"Process a set of queries asynchronously in a local instance."
(unless (pdf-info-local-server-p)
(error "Create a local server first"))
(let* ((buffer (current-buffer))
(producer-symbol (make-symbol "producer"))
(consumer-symbol (make-symbol "consumer"))
(producer
(lambda (args)
(if (null args)
(funcall sentinel-fn 'finished buffer)
(let ((pdf-info-asynchronous
(apply-partially
(symbol-function consumer-symbol)
args)))
(cond
((pdf-info-local-server-p buffer)
(with-current-buffer buffer
(apply producer-fn (car args))))
(t
(funcall sentinel-fn 'error buffer)))))))
(consumer (lambda (args status result)
(if (not (pdf-info-local-server-p buffer))
(funcall sentinel-fn 'error buffer)
(with-current-buffer buffer
(apply consumer-fn status result (car args)))
(funcall (symbol-function producer-symbol)
(cdr args))))))
(fset producer-symbol producer)
(fset consumer-symbol consumer)
(funcall producer args)))