Revert "Revert "Made use of ::= in core libraries and defined a RebindError condition...
[cslatevm.git] / src / lib / concurrency.slate
blob363a7f6deedf143996a058a51a56df69d087fa02
2 "Slate based concurrency"
4 prototypes ensureNamespace: #concurrency &delegate: True.
6 concurrency define: #Process &parents: {Cloneable}
7  &slots: {#pipes -> ExtensibleArray new}.
10 p@(Process traits) forkAndDo: b
11 [ | ret |
12   ret := (lobby cloneSystem).
13   ret first ifTrue: [p pipes addLast: ret second. ret second]
14             ifFalse: [[p pipes clear. p pipes addLast: ret second. b applyWith: ret second] ensure: [lobby quit]]
18 concurrency addSlot: #currentProcess valued: Process new.