Thread safety of Source.queue

Is it safe to do something like this:

val (queue, source) = Source.queue[T](bufferSize, OverflowStrategy.backpressure).preMaterialize()

Future {
  // in reality, the queue would be passed off somewhere else, where items would be added to the 
  // queue from a different thread as events come in.


The documentation isn’t particularly clear on that.

That is thread-safe, but the queue has a limited buffer so you should use the result of queue.offer