I have a question about how flock()
works, particularly in python. I have a module that opens a serial connection (via os.open()
). I need to make this thread safe. It's easy enough making it thread safe when working in the same module using threading.Lock()
, but if the module gets imported from different places, it breaks.
I was thinking of using flock()
, but I'm having trouble finding enough information about how exactly flock works. I read that flock() unlocks the file once the file is closed. But is there a situation that will keep the file open if python crashes?
And what exactly is allowed to use the locked file if LOCK_EX
is set? Just the module that locked the file? Any module that was imported from the script that was originally run?