Standard Mutex is released once out of scope

You should be able to put the guard into a vector, but the vector must take ownership by having the type Vec<MutexGuard<i32>> since otherwise the guard is dropped at the end of the body of the for loop, invalidating the reference to it you put in the vector.