So now to everyone's unpleasant surprise, the sample code in TDPL compiles and runs, it just has difficult to detect problems.
So regardless of the discussion of the comma operator, synchronized with multiple arguments should just work.
Is synchronized being lowered to some function calls? Andrei