zlacker

[parent] [thread] 1 comments
1. iainme+(OP)[view] [source] 2025-08-22 15:49:58
What's an example of where you'd need to do that?

I can't recall ever needing that (but that might just be because I'm used to lexical scoping for defer-type constructs / RAII).

replies(1): >>tgv+v02
2. tgv+v02[view] [source] 2025-08-23 06:31:16
>>iainme+(OP)
Someone already replied, but in general when you conditionally acquire a resource, but continue on failing. E.g., if you manage to acquire it, defer the Close() call, otherwise try to get another resource.

Another example I found in my code is a conditional lock. The code runs through a list of objects it might have to update (note: it is only called in one thread). As an optimization, it doesn't acquire a lock on the list until it finds an object that has to be changed. That allows other threads to use/lock that list in the meantime instead of waiting until the list scan has finished.

I now realize I could have used an RWLock...

[go to top]