diff options
| author | Jim Lawson | 2020-03-23 14:12:20 -0700 |
|---|---|---|
| committer | GitHub | 2020-03-23 14:12:20 -0700 |
| commit | 5658865b6140c9a72d1da76631854b1f6efaf861 (patch) | |
| tree | ed46fc29ca71cc5cc59929f46d1529cdbe34f929 /src/main/scala/firrtl/package.scala | |
| parent | 6b97e334e89d5f9d03c6abdd6ef927c3ca0b5030 (diff) | |
Explicitly initialize firrtl.stage.Forms to prevent multi-thread collisions (#1463)
* Explicitly initialize firrtl.stage.Forms to prevent multi-thread collisions
See https://github.com/freechipsproject/firrtl/issues/1462.
Convert `lazy val` members of firrtl.stage.Forms to plan `val`s.
Reference firrtl.stage.Forms in sufficient locations to ensure the object is initialized before its members are accessed.
* Respond to comments - make _dummyForms private.
* Move Forms initialization to package object.
* Merge with master
Diffstat (limited to 'src/main/scala/firrtl/package.scala')
| -rw-r--r-- | src/main/scala/firrtl/package.scala | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/main/scala/firrtl/package.scala b/src/main/scala/firrtl/package.scala index 1e871c46..c0f48bf0 100644 --- a/src/main/scala/firrtl/package.scala +++ b/src/main/scala/firrtl/package.scala @@ -3,6 +3,9 @@ import firrtl.annotations.Annotation package object firrtl { + // Force initialization of the Forms object - https://github.com/freechipsproject/firrtl/issues/1462 + private val _dummyForms = firrtl.stage.Forms + implicit def seqToAnnoSeq(xs: Seq[Annotation]) = AnnotationSeq(xs) implicit def annoSeqToSeq(as: AnnotationSeq): Seq[Annotation] = as.underlying |
