Re:Proposal to add constexpr to C [pdf]
by bonzini on Saturday October 16, 2021 @05:00PM
(#28891465)
How would variable length arrays, for example, help with releasing a mutex on early returns from a function?
[ Parent
| on HN ]
Re:Proposal to add constexpr to C [pdf]
by enriquto on Saturday October 16, 2021 @05:30PM
(#28891742)
They wouldn't, of course! Releasing resources silently (other than the memory of automatic variables) is very un-C-like.
It's not silent, you do declare that you want it released; you just do it before and it applies to all early returns. For example
MUTEX_LOCK_GUARD(&lock)
for (i = 0; i < n; i++)
if (a[i] == x)
return i;
return -1;
Real world example here: https://github.com/qemu/qemu/blob/master/block/iscsi.c#L325And the implementation: https://github.com/qemu/qemu/blob/master/include/qemu/lockab... (after inlining, the abstraction is completely zero cost).
Re:Proposal to add constexpr to C [pdf]
by dataflow on Saturday October 16, 2021 @05:57PM
(#28891955)
> RAII is mostly already there
>> Releasing resources silently (other than the memory of automatic variables) is very un-C-like
The "R" is literally "resource", right? Sounds like instead of RAII you just meant unique_ptr.
Though I beg to differ on whether releasing memory automatically is any different from releasing other resources as far as being C-like is concerned!