Merge branch 'tsan-gtask' into 'master'

gtask: Separate GTask fields memory locations to avoid data races

See merge request GNOME/glib!691
This commit is contained in:
Philip Withnall 2019-02-25 11:42:12 +00:00
commit d7c93e3f86

View File

@ -563,15 +563,22 @@ struct _GTask {
/* This cant be in the bit field because we access it from TRACE(). */
gboolean thread_cancelled;
gboolean check_cancellable : 1;
gboolean completed : 1;
gboolean return_on_cancel : 1;
gboolean synchronous : 1;
/* Protected by the lock when task is threaded: */
gboolean thread_complete : 1;
gboolean blocking_other_task : 1;
gboolean return_on_cancel : 1;
gboolean : 0;
/* Unprotected, but written to when task runs in thread: */
gboolean completed : 1;
gboolean had_error : 1;
gboolean result_set : 1;
gboolean ever_returned : 1;
gboolean : 0;
/* Read-only once task runs in thread: */
gboolean check_cancellable : 1;
gboolean synchronous : 1;
gboolean blocking_other_task : 1;
GError *error;
union {