I have an object like this:
class Blocking_queue
{
private:
    queue<T> my_queue;
    unsigned int dim;
    mutex  m;
    condition_variable cv;
}
In my main I want to create some threads which call the object methods:
Blocking_queue<int> q(6);
    thread t(close, q);
How can I do my copy constructor with the mutex? I think that I cannot simply do like this because it's not copiable
Blocking_queue(const Blocking_queue& source){
        this->queue = source.queue;
        this->dim = source.dim;
        this->m = source.m;
        this->cv = source.cv;
    }