private void sendEventNow() {
		List<EventNotification> notifications = withLock(() -> {

			DomainObjectChangedEvent e = createEventFromQueuedRecords();
			if (e != null) {
				notificationQueue.add(new EventNotification(e, listeners.values()));
			}

			if (notificationQueue.isEmpty()) {
				return Collections.emptyList();
			}

			List<EventNotification> existingNotifications = new ArrayList<>(notificationQueue);
			notificationQueue.clear();
			return existingNotifications;
		});

		if (notifications.isEmpty()) {
			return;
		}

		Swing.runNow(() -> doSendEventsNow(notifications));
	}
Constructs a new DomainObjectChangeSupport object.

@param src The object to be put as the src for all events generated.
@param timeInterval The time (in milliseconds) this object will wait before flushing its
event buffer. If a new event comes in before the time expires, the timer is reset.
@param lock the lock used to verify that calls to {@link #flush()} are not performed while a
lock is held; this is the lock to guard the DB
Ghidra/Framework/Project/src/main/java/ghidra/framework/data/DomainObjectChangeSupport.java