rpc-process-pool

Arguments: &key limit drop active query flush forget show

This function is used to query and to manage the process pool
maintained by the Allegro CL RPC Module. Each new in-bound remote
call (a call that is not a callback from an out-bound call) is
evaluated in a new Lisp process. In the os-threads model of Lisp
multi-processing (see multiprocessing.htm), there is
some overhead associated with the creation of a new Lisp process. The
process pool reduces this overhead by re-using processes.

The keyword arguments are:

limit: This argument is used to set the limit on
the number of idle processes kept in the pool. The initial value is
15. Valid values are integers from 1 to 100. Note that the processes
kept in the pool are reserved for remote calls. If there is an OS
limit on the number of running processes, then the processes in the
pool are included in that limit.

drop: This argument is used to set the limit on how long idle processes are kept in the pool. The initial value is 15; the units are minutes. Valid values are integers from 0 to 1000000. If this parameter is 0, then processes are discarded as soon as they are done, and the process pool will almost always be empty.

active: This argument is used to set the limit on the number of processes that will be run simultaneously to handle remote calls. The initial value is 10. Valid values are integers from 1 to 100, but note that the actual number of running processes may be bounded by an OS resource limit.

query: when a value from the list given below is
given for this argument, the value of the function call is the value
of a parameter of the process pool. Otherwise the value returned is
nil. See below for possible values for query and the resulting value of the function call.

show: When non-nil,
display the status, parameters and statistics of the process pool on
*standard-output*.

flush: When non-nil,
discard all the idle processes in the pool.

forget: When non-nil,
discard any pending remote calls waiting for a process.

new: When :none, disable the
process pool facility. When non-nil (but not
:none), start a new pool. In both cases, all
previous statistics are discarded.If the flush
and/or forget arguments are non-nil, their effect takes place first. If the
flush argument is nil or
omitted, then any idle processes are discarded with a warning. If the
forget argument is nil or omitted, then any waiting work items are
discarded with a warning.

Possible values for the query argument

If the value of the query argument is one of the
listed keywords, rpc-process-pool returns information about
the process pool and the status of processes, as described. If the
value of the query argument is nil or omitted, rpc-process-pool returns nil.

Value ofquery

Value returned by
rpc-process-pool

nil.
This is the default.

nil

:waiting

Return the number of remote calls waiting for a process at this moment.

:pool

Return the number
of idle processes in the pool at this moment.

:running

Return the number
of processes running a remote call at this moment.

:limit

Return the limit
on the number of idle processes kept in the pool.

:drop

Return the limit
on how long idle processes are kept in the pool.

:active

Return the limit on the number
of processes that will be run simultaneously to handle remote calls.

:max-active

Return the maximum number
of active processes.

:max-waiting

Return the maximum number
of calls waiting for a process.

:re-used

Return the number
of times a process was re-used.

:new

Return the number
of times a process was created.

:saved

Return the number
of times a process was saved for re-use.

:killed

Return the number of times a process was
discarded after use.

:dropped

Return the number of times a process
was discarded from the idle pool

See also rpc.htm for general information on the
Remote Procedure Call utility in Allegro CL.

Copyright (c) 1998-2012, Franz Inc. Oakland, CA., USA. All rights reserved.Documentation for Allegro CL version 9.0. This page was not revised from the 8.2 page.Created 2012.5.30.