Global Synchronizers are very similar to regular synchronizers, except that they are not designed to be used for point-to-point synchronization as regular synchronizers are, but for a general synchronization. They are used for synchronizing methods inside an actor, or for general scheduling tasks (ie. starting this method at a certain time, starting another method at another time, etc.)
The structure of a global synchronizer is exactly the same as a normal synchronizer, but with one difference: global synchronizers do not have a name. This means that there can only be one global synchronizer per node (one global synchronizer per instance of a program running on a computer). The syntax is as follows:
global { variable declarations init( actor pairs to synchronize ) { initialization code } constraints { timing constraints } triggers { synchronization actions } exception { what to do on a timing violation } }
This is exactly the same as a synchronizer declaration, except for the first line it is simply the global keyword instead of the synchronizer keyword followed by a name.