Previous: , Up: Slave Lisps   [Contents][Index]


18.3.3 Synchronous Operation Queuing

The routines in this section queue requests with an eval server and wait for confirmation that the evaluation actually occurred. Because of this, the user cannot continue editing while the slave executes the request. Note, these usually execute in the slave immediately, but if the interactive buffer connected to the slave is waiting for a form to return a value, the operation requested must wait until the slave is free again.

Function: eval-form-in-server server-info string &optional package

This function queues the evaluation of a form in the server associated with server-info and waits for the results. The server read’s the form from string with package bound to the package named by package. This returns the results from the slave Lisp in a list of string values. You can read from the strings or simply display them depending on the print’ing of the evaluation results.

Package defaults to Current Package. If this is nil, the server uses the value of package in the server.

While the slave executes the form, it binds terminal-io to a stream that signals errors when read from and dumps output to a bit-bucket. This prevents the editor and slave from dead locking by waiting for each other to reply.

Function: eval-form-in-server-1 server-info string &optional package

This function calls eval-form-in-server and read’s the result in the first string it returns. This result must be read’able in the editor’s Lisp.


Previous: Asynchronous Operation Queuing, Up: Slave Lisps   [Contents][Index]