This is the cause of "window size reached" bug.
If responseReceived thread is suspended when dataPromise.succeed call, and another thread which waked up by dataPromisss.succeed call reciveData again, that second call create dataPromise promise. Then resume responseRecived thread clear dataPromise property without calling succeed, which cause forever waiting.
In this fix, dataPromise and cachedRecivedData is isolated by actor and access only from the same actor context.
This is the cause of "window size reached" bug. If responseReceived thread is suspended when dataPromise.succeed call, and another thread which waked up by dataPromisss.succeed call reciveData again, that second call create dataPromise promise. Then resume responseRecived thread clear dataPromise property without calling succeed, which cause forever waiting.
In this fix, dataPromise and cachedRecivedData is isolated by actor and access only from the same actor context.