When using a statically allocated AsyncReceiver, the internal data structure called receiver_promises_ will keep growing up.
My first thought about fixing it involves probably a hashmap <provider*, AsyncReceiverPromise*> and when we handleAsyncComplete, or cancel the receiver, we retrieve the promise and delete it from the provider.
Any better ideas? @bryancall @zwoop @SolidWallOfCode @scw00 @oknet @masaori335 @maskit cc @bgaff