[*]the LockObject has no sense, because you are locking just the I2CBus instance creation, but the further usage is not thread-safe at all;
[*]consider two threads using the I2CBus: they don't work properly.
[/list]The thread-safety on drivers like I2C or SPI is a much more complex task, and cannot be solved with a simple lock.
Can you clarify why his usage of the lock isn't thread-safe? Other than possible performance considerations with an exclusive lock, why wouldn't his approach work, since the read and write operations are contained within the lock?
But in general I agree - the code isn't well written at all and probably unnecessary as you noted.
I don't think Mario was saying that the code wasn't well written at all, he had some suggestions. However, if you are going to say this, it would be more helpful to explain to the OP what you thought was lacking!