← Back to team overview

maria-developers team mailing list archive

Re: 0dfe5a31573: MDEV-22441 implement a generic way to change a value of a variable in a scope

 

Hi, Eugene!

On Jan 09, Eugene Kosov wrote:
> revision-id: 0dfe5a31573 (mariadb-10.7.1-13-g0dfe5a31573)
> parent(s): 1e54a9716d2
> author: Eugene Kosov
> committer: Eugene Kosov
> timestamp: 2021-12-03 16:12:27 +0600
> message:
> 
> MDEV-22441 implement a generic way to change a value of a variable in a scope
> 
> Example:
> {
>   auto _= make_scope_value(var, tmp_value);
> }
> 
> make_scope_value(): a function which returns RAII object which temporary
> changes a value of a variable

1. Why have you not created a macro, like SCOPE_EXIT to avoid `auto _=` ?
   Particularly as one cannot use `_` to backup more than one variable.

2. better remove the new value from make_scope_value(). Creating a RAII
   backup and an assignment of a new value are two separate actions. The
   assignment can happen much later or conditionally or not at all.

3. (not part of MDEV-22441) See how SCOPE_EXIT is implemented in
   rocksdb, perhaps we should do it similarly? It's used like

   SCOPE_EXIT { mem_heap_free(heap); }

Regards,
Sergei
VP of MariaDB Server Engineering
and security@xxxxxxxxxxx