[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: make-thread with lambda form instead of function symbol
From: |
Noam Postavsky |
Subject: |
Re: make-thread with lambda form instead of function symbol |
Date: |
Sun, 16 Apr 2017 21:46:35 -0400 |
On Sun, Apr 16, 2017 at 9:12 PM, Eric Abrahamsen
<address@hidden> wrote:
>
> (defun nnir-run-query (specs)
> (let* ((results [])
> (threads
> (mapcar
> (lambda (x)
> (let* ((server (car x))
> (search-engine (nnir-server-to-search-engine server)))
> (make-thread
> (lambda ()
> (setq results
> (vconcat
> (nnir-run-search
> search-engine
> server
> (cdr (assq 'nnir-query-spec specs))
> (cadr x))
> results))))))
> (cdr (assq 'nnir-group-spec specs)))))
> (mapc #'thread-join threads)
> results))
>
> I'm testing with a single IMAP server query (ie, only one thread is
> being created). The nnir-run-search function for the IMAP backend ends
> up calling nnimap-send-command--> nnimap-wait-for-response-->
> nnheader-accept-process-output--> accept-process-output, so I'm
> expecting that's where the thread yields.
>
> I'm attaching the traceback here. Dunno if it's something I've done
> wrong...
> #4 0x000000000069f953 in Faccept_process_output (process=..., seconds=...,
> millisec=..., just_this_one=...) at process.c:4566
Is line process.c:4566 this one?
error ("Attempt to accept output from process %s locked to thread %s",
SDATA (proc->name), SDATA (XTHREAD (proc->thread)->name));
I guess that indicates you might be doing something wrong (though
obviously Emacs shouldn't be crashing)
Re: make-thread with lambda form instead of function symbol, Eli Zaretskii, 2017/04/17
Re: make-thread with lambda form instead of function symbol, Andrew Cohen, 2017/04/17
Re: make-thread with lambda form instead of function symbol, Eric Abrahamsen, 2017/04/19