Re: Reentrant Functions
- To: mathgroup at smc.vnet.net
- Subject: [mg29450] Re: Reentrant Functions
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Wed, 20 Jun 2001 04:36:29 -0400 (EDT)
- Organization: Universitaet Leipzig
- References: <9gn6oo$eof$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi,
a) functions must reentrant in a multi-thread application
with more than one program thread. A C-function with
some static local data is not, a C-function that access
some global data is not. Mathematica has not support
for threads (it has MathLink). So you can't make reentrant
functions because you can only access a single thread.
The reentrance problem arises when the same function is
called from two different program
threads at the same time (this is not recursive) and
this cause trouble with the access of the static data.
The same applys to functions that access a certain hardware
port directly.
b) if you mean *recursive* functions, yes Mathematica's function
can be recursive. However recursion has nothing to do
with reentrance, because a recursive function can be non-reentrant
(a factorial that save the first 30 computed values in a static
table)
c) you should found out *what* you mean.
d) the manual has a complete description of recursive
programing -- why not read this book ?
Regards
Jens
Hermann Schmitt wrote:
>
> Hello,
> can functions be made reentrant, i.e. can I invoke in a function the
> same function again?
> Hermann Schmitt
- Follow-Ups:
- Re: Re: Reentrant Functions
- From: "Hermann Schmitt" <schmitther@netcologne.de>
- Re: Re: Reentrant Functions