Re: embedded and threaded - in java
[email protected] (Arthur Bergman) Mon, 16 Jun 2003 15:51:12 -0400
| Newsgroups | perl.jpl,perl.ithreads |
|---|---|
| Message-ID | <[email protected]> |
On Friday, May 23, 2003, at 12:27 pm, Meg Crocker wrote:
> Hi!
>
> Has anyone embedded perl in java with threads or multiple
> interpreters?
>
Hi,
Sorry for not responding earlier, I have been on my honeymoon and now
just arrived for YAPC.
I would first of all suggest you try a maintperl snapshot to get all
the fixes that 5.8.1 will have.
> I'm trying to build something based on JPerl
> (http://search.cpan.org/author/SBALA/jp_beta_1/) and I think I'm
> running up against my clue barrier - I'm seeing segfaults and panics
> ("panic: top_env") when I try to run stuff, even with a single thread.
>
> I sprinkled in PERL_SET_CONTEXTs liberally, pretty much at the
> beginning of any jperl function that uses a perl_ function or a perl
> macro...
>
You need to make sure that only one thread is using one perl context at
the same time, other bad stuff will happen. I suggest you look at the
mod_perl 2 threaded mpm project to see how they are doing.
> Tips would be terribly appreciated. I'm using perl5.8.0 and java
> 1.3 (hotspot jvm) on solaris 8. Here's a stupid question to get you
> started: My java is linked against libthread; perl seems to prefer
> libpthread. Do I need to make perl use libthread? It looks like
> libpthread uses libthread itself...
>
I have no idea actually, I am not a solaris expert.
> Also:
> - Do I need to "use threads" or any thread functions in my perl?
> I haven't yet - I've started with a single interp called from a
> single java thread. But I read in one older message that perl
> takes shortcuts if it doesn't think the thread stuff will actually
> be used?
>
No you don't, get the simple stuff working first.
> - Would all this be simpler with a mere multiplicity perl instead
> of a multiplicity-ithreads perl? I think I'd still need to be
> able to call each interpreter from multiple threads to get the
> performance characteristics I'm looking for.
>
No, because a non ithreaded perl will not be able to run more than one
perl interpreter at the same time.
> Thanks. :(
> Meg Crocker
>
Arthur