/sys/doc/ Documentation archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Synchronization



> On the other hand, your statement about concurrency is unexpected.  Yes,
> Limbo makes it easy to create new threads and Inferno seems to handle
> them nicely, but that's all I've been able to find---no synchronization
> primatives at all.  Have I missed something?
>
        In my very limited knowledge, I think that synchronization can
easily be achieved with the typed channels provided by Limbo. Also,
considering that pi-calculus only uses channels and no other primitives
such as mutexes (and also the fact that pi-calculus seems quite
successful at modeling concurrent programming) I would assume that
mutexes can be modeled with channels. If I am not mistaken, in the
documentation provided with IDK there is an example of mutual exclusion
implemented with channels.
        Essentially, there are no synchronization primitives per se.
BUT given the properties of channels, synchronization can be achieved --
and different synchronization methods can be modeled. Again, the lack of
generic programming is Limbo makes it a bit bothersome, but nonetheless,
achievable.            

	What I mean is: in a function, when a variable reads the content
of a channel (x =<- c) the thread will block until a value is sent across
c, thus synchronizing the two threads (the one that writes to c, and the
one that reads from c). 

_____________________________________
Marcus Silva 
msilva@novice.uwaterloo.ca