al_destroy_display man page
al_destroy_display — Allegro 5 API
#include <allegro5/allegro.h> 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.