Une solution très simple consiste à mémoriser dans chaque objet producteur et consommateur l'état de l'autre. Pour ce faire, on modifie l'interface IDL de cette façon : interface Consumer { void disconnect(); void Push(in string message); }; interface Producer { void disconnect(); void Pull(inout string message); }; Les méthodes disconnect permettent de positionner la valeur d'un boolean encapsulé dans les classes d'implémentation Producer_Impl et Consumer_Impl. Exemple d'utilisation dans le mode Push : - Si le consommateur souhaite stopper son fonctionnement, il invoque la méthode disconnect de l'interface "Producer". Cette méthode a pour effet de positionner un booleen du coté producteur. Ceci indique au producteur (Producer_Procces.java) que le consommateur souhaite se terminer. - Le producteur acquite alors la demande du consommateur (Consumer_Process.java) en invoquant la méthode disconnect de l'interface "Consumer". Ce qui a pour effet de positionner un booleen chez le consommateur lui indiquant qu'il peut maintenant terminer son exécution. Les booleens pouvant être accédés de façon concurrente, il est nécessaire d'utiliser la classe Synchronized_Bool.java