RobertIndie commented on PR #1055:
URL: 
https://github.com/apache/pulsar-client-go/pull/1055#issuecomment-1634027811

   > Calculte the required resouce (semaphore/memory, when chunking, more than 
1 semaphores, we cache the compressedPayload/meta in the sendRequest when 
Calculting) before we put a request into the dataChan, if there is no enough 
resource, fail fast, in this way, we can delete the sendRequest.blockCh field 
and no need to block;
   
   When enabling the chunking, we cannot get the number of total chunks before 
pushing the request to the dataChan. And there may be a deadlock issue similar 
to https://github.com/apache/pulsar/issues/17446
   
   > Add a sendRequest.done() method, when a request is done (succeed or 
failed), call it, release the resources a request holds, run the callback, 
report metrics, write debug logs in this method, in this way, we manage the 
resource/logic together and don't have to do these things across the whole file.
   
   +1 for this. It's a good practice to manage the resource.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to