add macros for unidirectional trasnafer and symmetric corutines