what does blocking mean in your context?
Let's asume the following: You have a child process which scans the scsi bus regularly (e.g. lsscsi) and puts this information into a array of hashes which gets serialized into a file (real file on the file system or shared memory segment).
The main program (tk) would try to get a read lock on that file. If it doesn't get it, it continues the event loop (showing the probably old information). If it gets the lock than it reads the information (which should be fast either on a real file or shared memeory (which should be faster)) and diplays it.
Assumimg communication is done via shared memory, I would expect that the interchange of information between the two processes (gathering information about scsi and reading this information) is done quikly and therefore more or less without blocking.