I wanted some clarifications about the design rationale of the workers. Is the data transfer between threads (in order to avoid uncontrolled simultaneous modifications) a mandatory mechanism? I mean, the classical multithread unchecked access to heap will still be available in Kotlin? Isn't data transfer a major performance hit? And about cyclic dependencies (consider a graph-like data structure) how are they managed?
Sorry opening another issue and bothering you with such quetions, but I really cound't find the answers somewhere else.
I will try to write that down.
Good job! Just one concept I didn't understand. What exactly is freezing? I mean, if in Kotlin there is not a true deep immutability concept (like c++), how can data be immutable, is this somehow ensured by the runtime?
Also, in case I do not check the data transfer between workers (TransferMode.UNCHECKED) and workers will read only, will workers still well... work? Consider for example a pattern where just one thread has access in write mode, and all the others can only read.
Added some explanations of freezing and UNCHECKED mode.
Most helpful comment
I will try to write that down.