[Kaffe] core dump while running kaffe.
gback at cs.utah.edu
Tue Mar 23 08:39:30 PST 1999
> Godmar Back writes:
> > > Right.. but in general native code doesn't know which threading
> > > system is in use (or even which VM is running). So I guess I'm
> > > saying if enterUnsafeRegion() is not the thing it should be using,
> > > what is?
> > In Kaffe, protect your own unsafe stuff with locks/monitors, and
> > protect calls to libc functions with enterUnsafeRegion/leaveUnsafeRegion.
> > In a native threads impl, these functions will be empty stubs, in jthreads,
> > they do what we discussed.
> All I'm saying is that it would be nice to write the native code
> independently of the particular threads package kaffe is using.
> So at the least, enterUnsafeRegion() should be a nop if there's
> no need for it.
Yes, it should be a nop in this case.
> > > And when you say "native threads", you're assuming what? That each
> > > thread has its own data section? That's usually not the case, is it?
> > No, it's not.
> So you would still need to protect a call to (say) strtok(3), which
> internally maintains state using a private static variable.
Well, functions that are inherently unsafe because of their interface
you cannot use. That should be clear.
We're only concerned with functions that are not thread-safe because
of their internal implementation.
> > > Or that libc is a reentrant version and routines like strtok(3) are
> > > not being called? I'm fuzzy on the details of native threads.
> > Yes. I do assume that the basic libraries are thread-safe wrt to
> > the native threading system in use.
> I'd argue that this assumption is not always true.
It is true, or else things are broken.
Note that I'm not claiming that all libraries you use are thread-safe.
A given JNI library may rely on another library that is not thread-safe.
It can use locks to protect it. That's fine.
The case that causes problems is when you provide a library that is
shared by different JNI libraries using it who don't know of each other.
This is the case that I exclude.
As an aside, if anybody's interested in the jdc bug, it's at
More information about the kaffe