@article {baquero1994concurrency, title = {Concurrency annotations in C++}, journal = {ACM SigPlan Notices}, volume = {29}, number = {7}, year = {1994}, pages = {61{\textendash}67}, publisher = {ACM}, abstract = {

This paper describes CA/C++, Concurrency Annotations in C++, a language extension that regulates method invocations from multiple threads of execution in a shared-memory multiprocessor system. This system provides threads as an orthogonal element to the language, allowing them to travel through more than one object. Statically type-ckecked synchronous and asynchronous method invocations are supported, with return values from asynchronous invocations accessed through first class future-like objects. Method invocations are regulated with synchronization code defined in a separate class hierarchy, allowing separate definition and inheritance of synchronization mechanisms. Each method is protected by an access flag that can be switched in pre and post-actions, and by a predicate. Both must evaluate to true in order to enable a thread to animate the method code. Flags and method predicates are independently redefinable along the inheritance chain, thus avoiding the inheritance anomaly.

}, attachments = {https://haslab.uminho.pt/sites/default/files/cbm/files/10.1.1.41.4693.pdf}, author = {Carlos Baquero Moreno and Francisco Moura} }