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: Any): Boolean

    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

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

    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  5. def clone(): AnyRef

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

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

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

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

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

  11. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  12. 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

  13. final def isInstanceOf[T0]: Boolean

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

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

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

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

    Definition Classes
    AnyRef
  18. def toString(): String

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

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped