i didn't have the presence of mind to figure out why PI hung. i was too scared i was going to lose everything.
all i can say is that i attempted to save an image window as f32 fits, and PI reported a segmentation violation right after the file was written.
i then tried to overwrite the file by saving it a 2nd time, and PI hung.
i was able to attach with gdb and get it unstuck:
(gdb) attach 32300
Attaching to process 32300.
Reading symbols for shared libraries . done
Reading symbols for shared libraries ... done
0x00000001002b3e26 in pi::__DisposeFormatData ()
(gdb) return
Make selected stack frame return now? (y or n) y
#0 0x00000001002bb22b in pi::ImageWindow::Write ()
(gdb) cont
Continuing.
Program received signal SIGSTOP, Stopped (signal).
0x00000001002bb22b in pi::ImageWindow::Write ()
(gdb) cont
Continuing.
i should have tried to figure out exactly where in DisposeFormatData it was stuck, sorry about that.