I would prefer not to abreviate `Control` to `ctrl`; if we have to repeat the identifier so often we should address the real duplication.

Can you please extract the following?

```scala
@inline def withSerializationControl[A](SerializationControl => A): A = {
  tl.get match {
    case null =>
      val control = new List.SerializeControl
      tl set control
      try f(control) finally tl set null
   case control => f(control)
}
```

I'm pretty sure the closure will be eliminated, but you might want to convince yourself by checking the bytecode.