From the proposal..
The global actor type need not itself be an actor type;
it is essentially just a marker type that provides access to the actual shared actor instance via shared.
Whether class based globalActor support inheritance?
@globalActor
class Base{
static let shared = Base()
// shared mutable states...
}
//OR
@globalActor
class Base{
actor SomeActor {}
static let shared = SomeActor()
// shared mutable states...
}
class Sub:Base{...}//propagate @Base globalActor attritube
We have class and actor as separate ref type, but how about @globalActor class ...? Is it a class or (global)actor, or a class as @globalActor with class-inheritance capability?
In other words, @globalActor class is a special type in-between with class+actor duality?
- class
- @globalActor class
- actor
but this should definitely work, right?
@GA
class Base{...}
class Sub:Base {...}
Both Sub and Base share the same @GA globalActor, and support actor-like inheritance without problem.