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

Changes

Summary

  1. Cleanup Lock Package: API doc, complete throws declaration, interface (details)
  2. RecursiveThreadGroupLock: New recursive lock interface and impl, (details)
Commit 8dc2ad6a130c75121bc35e393d1cab89217d4d63 by Sven Gothel
Cleanup Lock Package: API doc, complete throws declaration, interface RecursiveLockImpl01Unfairish.Sync

RecursiveLockImpl01Unfairish changes are in preparation of RecursiveGroupThreadLock.
The file was modified src/java/com/jogamp/common/util/locks/LockExt.java (diff)
The file was modified src/java/com/jogamp/common/util/locks/RecursiveLock.java (diff)
The file was modified src/java/com/jogamp/common/util/locks/Lock.java (diff)
The file was modified src/java/jogamp/common/util/locks/RecursiveLockImpl01Unfairish.java (diff)
The file was modified src/java/jogamp/common/util/locks/RecursiveLockImpl01CompleteFair.java (diff)
The file was modified src/java/jogamp/common/util/locks/RecursiveLockImplJava5.java (diff)
Commit 4374d11a3a204ab608402ee24a8cee14eff923ef by Sven Gothel
RecursiveThreadGroupLock: New recursive lock interface and impl, allowing 'spawn off' process to become the lock owner.

To avoid complicated synchronization via synchronized, wait and notify between one thread
and a 'spawn' off thread which temporarly requires the hold lock,
RecursiveThreadGroupLock allows to add and remove other threads to become owners of the lock
as if they were the original holder.

This simplifies some rare locking use cases, eg. in JOGL's GLProfile initialization sequence
where a SharedResourceRunner thread is taking over initialization of shared resources.
The file was addedsrc/java/jogamp/common/util/locks/RecursiveThreadGroupLockImpl01Unfairish.java (diff)
The file was modified src/java/com/jogamp/common/util/locks/LockFactory.java (diff)
The file was modified make/scripts/runtest.sh (diff)
The file was addedsrc/java/com/jogamp/common/util/locks/RecursiveThreadGroupLock.java (diff)
The file was addedsrc/junit/com/jogamp/common/util/locks/TestRecursiveThreadGroupLock01.java (diff)