2016-01-17 20:58 GMT+01:00 Eliot Miranda <eliot.miranda@gmail.com>:
Thanks Denis,

On Mon, Jan 11, 2016 at 6:54 AM, Denis Kudriashov <dionisiydk@gmail.com> wrote:
 
I write it such way:

primitiveEnterCriticalSectionOnBehalfOf: activeProcess
[owningProcess ifNil:
[owningProcess := activeProcess.
^false].
 owningProcess = activeProcess ifTrue:
[^true].
 self addLast: Processor activeProcess.
activeProcess suspend] valueUnpreemptively

primitiveTestAndSetOwnershipOfCriticalSectionOnBehalfOf: activeProcess
[owningProcess ifNil:
[owningProcess := activeProcess.
^false].
 owningProcess = activeProcess ifTrue: [^true].
 ^nil] valueUnpreemptively

This looks good.  Do you have methods you've written?  I'd like to use yours as they have your time stamp.

I only added it to renamed class LockOwnership (attached). So you can only copy it to original class which will reset timestamps