The Allegro Wiki is migrating to github at https://github.com/liballeg/allegro_wiki/wiki
Al destroy display
void al_destroy_display(ALLEGRO_DISPLAY *display)
Destroy a display. If the target bitmap of the calling thread is tied to the display, then it implies a call to "al_set_target_bitmap(NULL);" before the display is destroyed.
That special case notwithstanding, you should make sure no threads are currently targeting a bitmap which is tied to the display before you destroy it.