public synchronized void release(Object user, MemoryManageable mm) {
        if (user == null || mm == null)
            return;
//System.out.println("+-+ MM.release() user: " + user + ", mm: " + mm);
        HashSet inUse = locked.get(user);
        if (inUse != null) {
            boolean removed = inUse.remove(mm);
            // remove locked reference if it no longer holds any mm objects.
            if (inUse.size() == 0) {
                locked.remove(user);
            }
//if( removed ) System.out.println("+-+ MM.release() mm was removed");
        }
    }