I am not familiar with the relationship between setting the m2nframe and GC.
I guess if there is no potential garbage collection, it's better to take the
fast path,because the fast path does not contain safepoint for GC to start,
and if GC really happens when a thread is requiring or releasing a lock,
then it should transfer from the fast path to the slow one so that GC
can start, because the slow path contains safepoint for GC to start. And
in order to unwind the stack correctly, the m2nframe should be setted before
the slow path.
Am I right or I missed some thing else?

 Thanks,
Chengrong


2007/12/18, Xiao-Feng Li <[EMAIL PROTECTED]>:
>
> On Dec 18, 2007 8:43 PM, 史成荣 <[EMAIL PROTECTED]> wrote:
> > why does it need setting the m2nframe before the slow path while it
> needn't
> > when taking the fast path?
>
> As I said below, that's for potential garbage collection or exception
> throwing, when you need unwind the stack correctly.
>
> Thanks,
> xiaofeng
>
> > 在07-12-18,Xiao-Feng Li <[EMAIL PROTECTED]> 写道:
> >
> > >
> > > Chengrong, locking is expensive, which should be optimized or avoided.
> > > The fast path acquiring the lock without Java-native border crossing
> > > can be much fast. It's expected the fast path be executed in most
> > > cases. This is possible if the code sequence doesn't trigger garbage
> > > collection or exception, hence no need to bookkeeping the frames.
> > >
> > > Thanks,
> > > xiaofeng
> > >
> > >
> >
>
>
>
> --
> http://xiao-feng.blogspot.com
>

Reply via email to