when a channel is destructed during a success-callback, the program crashed, this has been fixed by using shared_ptr