cleaning up the locking layers

Patrick Tullmann tullmann at
Sun Feb 27 22:08:01 PST 2000

Godmar Back wrote:
> > NOTE: these are functions, and must remain so, since their addresses
> > are taken in some engines.
> Is that a change you're proposing?
> Currently, the address of the slowLock/Unlock functions is taken in
> the jit3 engine; it's inlined in the code the jit emits.
> Or do you mean something else?

That was already in the FAQ, so I kept it... I assume its still true
of the older JIT engine?  I'll look into it an see what the real story 

> It's also not clear to me how useful it would be to tweak lockObject
> (or even slowLockObject) to log execution of monenter/exit:  all inlined 
> uncontended acquisitions would not be logged in this case.    Might still
> be partially useful though.

Again, previous text.  Its a good abstraction in any event.

> If you define Ksem in kaffevm/ksem.h, does that mean that a threading
> system cannot implement Ksem's operations as macros?

Currently I have the Ksem typedef and the ksemInit/ksemPut/ksemGet
functions as static inline methods in ksem.h.  The entire set is
surrounded by #ifndef JTHREAD_HAS_KSEM.  So, a threading system should 
be able to implement ksemPut and ksemGet as macros or inline functions.


----- ----- ---- ---  ---  --   -    -      -         -               -
Pat Tullmann                                       tullmann at
       Don't hate yourself in the morning -- sleep until noon!

More information about the kaffe mailing list