[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]

If this only happens when you start your program from Workbench, then you
are probably UnLock()ing one of the WBStartup message wa_Locks, or
UnLock()ing the Lock() returned from an initial CurrentDir() call.  If you
CurrentDir(), save the lock returned initially, and CurrentDir() back to
it before you exit. Only UnLock() locks that you created.

If you are crashing from both Workbench and CLI, and you are only crashing
after exit, then you are probably either freeing/closing something twice,
or freeing/closing something your did not actually allocate/open, or you
may be leaving an outstanding device I/O request or other wakeup request.
You must abort and WaitIO() any outstanding I/O requests before you free
things and exit (see the Autodocs for your device, and for Exec AbortIO()
and WaitIO()).  Similar problems can be caused by deleting a subtask that
might be in a WaitTOF().  Only delete subtasks when you are sure they are
in a safe state such as Wait(0L).

[Back to Amiga Developer Docs]