Please sign in to comment.
Optimization to log an exception at most once if the same exception i…
…s being (re-)thrown several times This used to be an ad-hoc optimization available only in ``ScalaCompilationUnit``. However, I believe this can be useful in general, and the optimization belongs to ``EclipseLoggger``. The former implementation was thread-safe because ``lastCrash`` was always accessed within the ``PresentationCompilerThread`` (thread-safety was achieved via thread-confinement). However, it was a weak form of thread-safety, as it was potentially very easy to break if you didn't understand the thread policy of the class (which is not documented). Implementing this optimization in ``EclipseLogger`` forced us to have a stronger form of thread-safety, because ``lastCrash`` can be accessed from any thread. Documented thread safety guarantees of ``EclipseLogger`` and also described its synchronization policy for mantainers
- Loading branch information...
Showing with 42 additions and 28 deletions.