@Override
	public Spliterator<T> trySplit() {
		Spliterator<T> newSplit;
		synchronized (lock) {
			newSplit = spliterator.trySplit();
		}
		if (newSplit == null) {
			return null;
		}
		return new SynchronizedSpliterator<>(newSplit, lock);
	}
Wraps an unsynchronized spliterator in one that synchronizes on a given object's intrinsic lock,
often the collection that provided the stream or spliterator.

@param <T> the type of elements
Ghidra/Debug/ProposedUtils/src/main/java/ghidra/util/database/SynchronizedSpliterator.java