domain ObjectPascal; aspect synchronize { pointcut function_handle() : execution(function *.Handle(*:*)); around() : function_handle() { 'TExHandleCollection(Collection).LockHandle;'; try { proceed (); } finally { 'TExHandleCollection(Collection).UnLockHandle;'; } } }