Skip to content
The Jenkins Controller is preparing for shutdown. No new builds can be started.
Success

Changes

Summary

  1. Lock ChangeSet: Prepare RecursiveLock to be an implementation of it's (details)
  2. Lock ChangeSet: New RecursiveLock interface. Minor API change to of (details)
  3. Lock ChangeSet (fin): Cleanup, fix and enhance RecursiveLock (details)
  4. RunnableTask: Allow validation whether invoking thread intends to wait (details)
  5. minor: test/build scripts (details)
Commit 4ba2f8304d8e557fff9874f9e214d476f44e40e0 by Sven Gothel
Lock ChangeSet: Prepare RecursiveLock to be an implementation of it's new interface
The file was addedsrc/java/jogamp/common/util/locks/RecursiveLockImpl01Unfairish.java (diff)
The file was removedsrc/java/com/jogamp/common/util/locks/RecursiveLock.java (diff)
Commit 73ac81eefce6b0dbf6922d2475c4b9eb9ed8a819 by Sven Gothel
Lock ChangeSet: New RecursiveLock interface. Minor API change to of tryLock throws declaration
The file was modified src/java/com/jogamp/common/util/locks/Lock.java (diff)
The file was addedsrc/java/com/jogamp/common/util/locks/RecursiveLock.java (diff)
Commit e4baba27507ce78e64a150ec6f69fb96f5721a34 by Sven Gothel
Lock ChangeSet (fin): Cleanup, fix and enhance RecursiveLock implementation

- RecursiveLock _is_ interface.

- Use LockFactory to create a RecursiveLock.

- Impl: RecursiveLockImpl01Unfairish
  - just using notify w/o any queue: fast
  - still enqueuing new lock-applicants if queue full (nice)
  - lock's sync extends AbstractOwnableSynchronizer and uses it (monitor)

- Impl: RecursiveLockImpl01CompleteFair
  - using queue and interrupt for correctness (slow)
  - lock's sync extends AbstractOwnableSynchronizer and uses it (monitor)

- Impl: RecursiveLockImplJava5 for using Java5's concurrency impl.
  - to verify correctness, performance and deviation of locking time

TestRecursiveLock01 new performance measurements incl. simple avrg and deviation
shows best combined performance-deviation w/ our RecursiveLockImpl01Unfairish
os Linux and MacOSX.
RecursiveLockImpl01Unfairish is the default in LockFactory.

Adding 'private' LockDebugUtil, allowing validating all holdings locks
of one thread as stack traces (Throwable).
Besides the AbstractOwnableSynchronizer utilization, this helps debugging deadlocks
and starvation very well.
The file was addedsrc/java/jogamp/common/util/locks/LockDebugUtil.java (diff)
The file was modified src/java/jogamp/common/util/locks/RecursiveLockImpl01Unfairish.java (diff)
The file was addedsrc/java/com/jogamp/common/util/locks/LockFactory.java (diff)
The file was addedsrc/java/jogamp/common/util/locks/RecursiveLockImplJava5.java (diff)
The file was addedsrc/java/jogamp/common/util/locks/RecursiveLockImpl01CompleteFair.java (diff)
The file was modified src/junit/com/jogamp/common/util/locks/TestRecursiveLock01.java (diff)
Commit 6e7ba5a27141b350a8fb7763103dff0d9dd8875a by Sven Gothel
RunnableTask: Allow validation whether invoking thread intends to wait for the result
The file was modified src/java/com/jogamp/common/util/RunnableTask.java (diff)
Commit 7c0bb4080a6dfb86ab6061cc24d17c133b1dd731 by Sven Gothel
minor: test/build scripts
The file was modified make/scripts/make.gluegen.all.macosx.sh (diff)
The file was modified make/scripts/runtest.sh (diff)