Re: Java->Scheme doubts, please help...
Antonio <[email protected]> Wed, 22 Nov 2006 13:42:27 +0100
| Newsgroups | gmane.comp.java.sisc.user |
|---|---|
| Message-ID | <[email protected]> |
One more question, from the doc I read:
When the Interpreter is no longer by the current thread needed
it must be released using:
public void exit();
Release the resources of the current interpreter.
But it seems my "Interpreter" has no "exit()" method. Am I missing
something here?
Thanks,
Antonio
Antonio wrote:
> Hi all,
>
> I am invoking Scheme from Java (external call). And, after reading the
> documentation, I still have some doubts on how to do it. I would
> appreciate any clarifications.
>
> What I am trying to do is to create a thread that is responsible for
> evaluating Scheme code (a "Scheme Evaluator Thread"). The thread will
> always be running, waiting for Scheme code to be executed (using a
> blocking queue) and other threads will send it requests for execution
> asynchronously.
>
> Thanks in advance,
> Antonio
>
> 1.- AppContext thread safe?
>
> I am creating an AppContext object. The documentation says that
> AppContexts "are unique to a single usage of SISC".
>
> I am confused by that sentence. Shall I create an AppContext from every
> thread using SISC? Or may I share it from different threads? Are
> "AppContexts" thread safe? (i.e.: can a single AppContext work with
> different interpreters?)
>
> Suggestion: rephrase "single usage of SISC".
>
>
> 2.- Using interpreters.
>
> Once I create my AppContext (and once the heap is added to it) I must
> create an interpreter for each thread I use. Now, how do I create an
> interpreter from the AppContext?
>
> 2.1.- Option I:
>
> It seems I can use
> Interpreter myInterpreter = Context.enter( myAppContext );
> - Now, this is not documented! Is this thread safe/correct?
> - Will this create a dynamic environment for the current thread
> automatically?
> - If I keep this "myInterpreter" in my thread I assume I can use it to
> evaluate different Scheme code, right?
>
> 2.2.- Option II:
>
> The documentation suggests the following "managed" call:
> Object result = Context.execute( myAppContext, mySchemeCaller );
> I assume this creates an Interpreter, invokes the
> "mySchemeCaller.execute(Interpreter)" and then automatically exists the
> interpreter, right?
> I won't be able to use this mechanism in my "Scheme Evaluator Thread",
> because the intepreter will be created and destroyed automatically (right?).
>
> 2.3.- Option III:
> The third option consists of getting an Intepreter using a
> DynamicEnvironment, like this:
> Intepreter myInterpreter = Context.enter( myAppContext,
> myDynamicEnvironment );
>
> - Is option (I) above equivalent to Context.enter( myAppContext, null ) ?
> - May I keep "myInterpreter" in my "Scheme evaluator thread"?
>
>
> Thanks in advance,
> Antonio
>
>
>
>
>
> -------------------------------------------------------------------------
> Take Surveys. Earn Cash. Influence the Future of IT
> Join SourceForge.net's Techsay panel and you'll get the chance to share your
> opinions on IT & business topics through brief surveys - and earn cash
> http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
> _______________________________________________
> Sisc-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/sisc-users
>
>
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV