On 1/8/21 3:51 PM, Daniel Stenberg via curl-library wrote:
Hi all,

Here's something that's been itching in me for a long time. Something I've even (twice!) tried to fix. Both times my patch ended up so huge and complicated for me that I had to give it and postpone the idea.

Put shortly: "conn->data considered bad". The association *from* a connection object to a transfer object is bad, because it is fragile and error-prone due to the fact that it can and will change very frequently for multiplexed transfers.

A transfer can use one (or no) connection. A connection can have no, one or very many transfers associated with it.

Conclusion: we should stop using 'conn->data' in libcurl

Status: there are 939 current uses of this pointer

Mission: reduce the use of this pointer, aiming to reach a point in the future when we can remove it from the connection struct.


Happy new year to everyone!

Considering the large number of references, I would suggest starting to fix this "bottom up" by smaller commits rather than having a big patch, even if it increases the reference count at first while the work is not complete.

I also noticed there are a lot of references to conn->data for logging purposes only (infof, failf, debug) in connection-oriented procedures: maybe we should discuss an alternate strategy for logging from those procedures.

-------------------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-library
Etiquette:   https://curl.se/mail/etiquette.html

Reply via email to