A field is declared final and set in the constructor, then the object is published racily. What special guarantee does the JMM's final-field semantics give?
class Config(val timeout: Int) // val -> final field
// published via a plain non-volatile static, read by another thread