[m-rev.] for review: fix a bug with cloning thread local mutables
Peter Wang
novalazy at gmail.com
Wed Oct 14 10:17:22 AEDT 2026
On Tue, 13 Oct 2026 22:18:55 +1100 Julien Fischer <jfischer at opturion.com> wrote:
> For review by Peter.
>
> ------------------------------
>
> Fix a bug with cloning thread local mutables.
>
> In low-level C parallel grades, we clone the thread local mutables array when
> we spawn a new thread. Access to this array is protected by a mutex. The
> runtime code responsible for cloning the array acquires the lock for the
> new copy of the array to which values are being written, instead of the old
> copy, from which values are being read. It is the latter which needs to
> be protected by mutex, not the former. (There are no other references to
> the new mutables array at the point it is cloned.)
>
> runtime/mercury_thread.[ch]:
> Acquire the mutex for the copy of the thread local mutables we
> are reading from, not writing to.
>
> Delete the const qualifier from the argument of
> MR_clone_thread_local_mutables(), as acquiring the mutex will
> modify it.
>
> Julien.
>
Oops! Thanks.
Peter
More information about the reviews
mailing list