public void METHOD_1 ( ) { synchronized ( this ) { this . VAR_1 = false ; this . VAR_2 = true ; this . METHOD_2 ( ) ; } synchronized ( this ) { while ( this . VAR_2 ) { try { this . METHOD_3 ( ) ; } catch ( TYPE_1 VAR_3 ) { VAR_3 . METHOD_4 ( ) ; } } this . VAR_1 = false ; this . VAR_2 = false ; } }

public void METHOD_1 ( ) { synchronized ( this ) { if ( ! ( this . VAR_1 ) ) { return ; } this . VAR_1 = false ; this . VAR_2 = true ; this . METHOD_2 ( ) ; } synchronized ( this ) { while ( this . VAR_2 ) { try { this . METHOD_3 ( ) ; } catch ( TYPE_1 VAR_3 ) { VAR_3 . METHOD_4 ( ) ; } } this . VAR_1 = false ; this . VAR_2 = false ; } }
