Unify channel read procedure, fix termination exceptions, synthesize DESTROY