Hey Soulful cat @mikell it's been a long time !
imho a "blocking function" is a function that stops AdlibRegister to be called while the function is active, no more, no less.
If you look at the help file example, topics AdlibRegister or AdlibUnRegister, you'll notice this important sentence written in the example :
; AdLib functions don't run while a blocking function is shown e.g. MsgBox, InputBox, WinWait, WinWaitClose etc.
My tests above (from 2019) show this sentence is not true, because WinWait and WinWaitClose keep on running AdLib functions, while MsgBox and InputBox stop AdLib from running. So who wrote this sentence in the example as it's half true, half false ?
It would have been a better idea to indicate somewhere a list of all the blocking functions (or in the topic of each blocking function). A non exhaustive list is : MsgBox , InputBox , FileSelectFolder [as indicated in topic... HotKeySet ! then tested in 2019] , FileOpenDialog , FileSaveDialog etc...
That's the reason why I consider _ArrayDisplay "not blocking" as you can run an Adlib function while ArrayDisplay is active... no more, no less
Nine expressed this in a nice way because he indicated why he always chooses "the second-process approach, which will work all the time". He knows that _ArrayDisplay isn't a "truly blocking function" (compared to MsgBox for example) and "truly" is the word !
So instead of checking each time if a function is a "truly" blocking function or not, he prefers to always use the 2nd process approach, while I prefer the simpler AdLib approach... when possible