Thread-safe single producer single consumer: Single producer always is the DMX port. This is handled by the port internally. Do not use EnqueueSignal somewhere else to retain thread-safety. Single consumer is the user thread.