Currently the win32 gfxlib's updater thread keeps the internal update lock for the whole time it spends processing window messages. This means that when it sits in a modal message loop in DefWindowProc(), for example when the user is moving/resizing the window, it won't unlock the updater lock until returning from DefWindowProc(), and in the mean time any gfx command called from the main thread will block waiting for the lock.
It should at least only hold the lock as long as needed, to allow the main thread to continue running, even if the updater thread is sitting in some modal system loop.
See also: http://www.freebasic.net/forum/viewtopic.php?f=6&t=19583