Called on entry to a synchronized statement. If o does not already have a monitor, it will be created. The monitor will then be locked.
Called on exit from a synchronized statement. It will will unlock the monitor.
INTERNAL USE! Called during finalisation to remove monitor.
First field of any Object monitor must be a reference to Object.Monitor, even for custom implementations. Failure to do so will result in memory corruption.