Fixed GC/finalize issue with cleaning up unused channels
Implemented async reduce function