
- Intuition deadlocks are usually caused by Layer lock
  misunderstandings. Read the autodoc for LockLayer() very
  carefully. Many Intuition functions also use Layer locking, e.g.
  ObtainGIRPort(). Don't wait for Intuition or try any synchronous
  Intuition interaction directly or indirectly while Layers are
  locked.

- It is strongly discouraged to use so called "atomic
  modifications" of structure fields like updating the
  ReportMouse() setting WFLG_REPORTMOUSE. On future PowerPC
  machines, a single instruction might no longer be atomic. So if
  there is a function to modify a shared value, use it.

- There are some things in Intuition without proper Semaphore
  protection. Just check the CloseWindow() autodoc for the
  description of CloseWindowSafely(). Expect Forbid() type locking
  to be replaced with proper semaphore locking in a PowerPC OS.
  Isolate those places in the code that you want to use on a
  PowerPC OS to make changes easier.

- Don't play stunts with the borders. Adding gadgets to any border
  has always been fairly tricky because the window metric couldn't
  be fully obtained without hacking into things. Expect this to
  change and expect a need for calling a function to obtain
  information about sizes in a future OS. The GUI will change.

Heinz Wrobel
<heinz@amiga.de>

