If you know that either thread is going to modify the data, why not create a deep copy in the first place?

Qt Code:
  1. void mainFunction () {
  2. QVector<int> value = ...;
  3. valueForThread = value; // create a copy for thread
  4. valueForThread.detatch(); // create deep copy
  5. startThread(&threadFunction);
  6. value = ...; // doesn't affect thread
  7. }
To copy to clipboard, switch view to plain text mode 

Cheers,
_