+2020-04-08  Tom Tromey  <tromey@adacore.com>
+
+       * windows-nat.c (thread_rec)
+       (windows_nat_target::fetch_registers): Update.
+       * nat/windows-nat.h (struct windows_thread_info) <suspended>:
+       Update comment.
+       <debug_registers_changed, reload_context>: Now bool.
+
 2020-04-08  Tom Tromey  <tromey@adacore.com>
 
        * windows-nat.c (windows_add_thread): Use new.
 
   /* Thread Information Block address.  */
   CORE_ADDR thread_local_base;
 
-  /* Non zero if SuspendThread was called on this thread.  */
+  /* This keeps track of whether SuspendThread was called on this
+     thread.  -1 means there was a failure or that the thread was
+     explicitly not suspended, 1 means it was called, and 0 means it
+     was not.  */
   int suspended = 0;
 
 #ifdef _WIN32_WCE
 
   /* Whether debug registers changed since we last set CONTEXT back to
      the thread.  */
-  int debug_registers_changed = 0;
+  bool debug_registers_changed = false;
 
   /* Nonzero if CONTEXT is invalidated and must be re-read from the
      inferior thread.  */
-  int reload_context = 0;
+  bool reload_context = false;
 
   /* The name of the thread, allocated by xmalloc.  */
   char *name = nullptr;
 
              }
            else if (get_context < 0)
              th->suspended = -1;
-           th->reload_context = 1;
+           th->reload_context = true;
          }
        return th;
       }
              dr[7] = th->context.Dr7;
            }
        }
-      th->reload_context = 0;
+      th->reload_context = false;
     }
 
   if (r < 0)
 
+2020-04-08  Tom Tromey  <tromey@adacore.com>
+
+       * win32-i386-low.c (update_debug_registers)
+       (i386_prepare_to_resume, i386_thread_added): Update.
+
 2020-04-08  Tom Tromey  <tromey@adacore.com>
 
        * win32-low.c (child_add_thread): Use new.
 
 
   /* The actual update is done later just before resuming the lwp,
      we just mark that the registers need updating.  */
-  th->debug_registers_changed = 1;
+  th->debug_registers_changed = true;
 }
 
 /* Update the inferior's debug register REGNUM from STATE.  */
         FIXME: should we set dr6 also ?? */
       th->context.Dr7 = dr->dr_control_mirror;
 
-      th->debug_registers_changed = 0;
+      th->debug_registers_changed = false;
     }
 }
 
 static void
 i386_thread_added (windows_thread_info *th)
 {
-  th->debug_registers_changed = 1;
+  th->debug_registers_changed = true;
 }
 
 static void