We introduce the calculus of conditional concurrency combinators, allowing the programmer to declare synchronization code separately from the main code. The calculus comprises a set of novel concurrency combinators embedded in a small language which has both object-oriented and functional features. The concurrency combinators can be seen as behavioural types which can be used to express synchronization policies for concurrent threads, such as mutual exclusion (or atomicity), barrier synchronization, and policy revocation. Our language constructs allow conditional and complex synchronization policies to be declared for classes, objects, and expressions. In the paper, we present preliminary results of ongoing work. We define the calculus and explain its semantics informally. We also discuss the advantages of our language constructs by using them to solve a few example classical synchronization problems
To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.