cgta.cenum

CEnum

object CEnum

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. CEnum
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  8. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  11. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  12. def getElements[A <: CEnum](enum: A): cenum.IVec[CEnum.getElements.A.EET]

    Annotations
    @macroImpl( ... )
  13. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  14. val initStrategy: CEnumInitStrategy

    This method creates a thread and runs the blk of code passed to it.

    This method creates a thread and runs the blk of code passed to it. It is used since constructors in java are not re-entrant accross threads so if two different threads grab two different enum elements very close to each other in time, a deadlock can occur since CEnum.this.getClass will end up calling the constructors of all the member enum elements. And, in this (atleast) one of those constructors will be blocked in another thread on the result of CEnum.this.getClass.

    Thread1: EnumElementA Base Trait Ctor Begins Thread2: EnumElementB Base Trait Ctor Begins either makes it to the call CEnum.this.getClass add(EnumElementA) get's called, if this is thread1 ok (since the ctor was called there) otherwise this will block since no instance of A is constructed yet. This block will then be a deadlock, since the add cannot complete and hence the CEnum derived class cannot complete construction.

    This code works around all that by making a separate thread that does initialization. The ordinal method will busy block until the ordinal is set.

    On ScalaJS this works around issues with parent obj vs contained object initialization order

  15. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  16. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  17. final def notify(): Unit

    Definition Classes
    AnyRef
  18. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  19. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  20. def toString(): String

    Definition Classes
    AnyRef → Any
  21. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  22. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped