Fixed potential deadlock: Model needs to explicitly unlock before triggering the view update, because view will try to lock on the same mutex.