Search code examples
c++multithreadingoperating-systempthreadsmulticore

Understanding OS dispatching between different processors


If I have a class

class A{
  A(){
   getcontext(context);
   makecontext(context, fun1, etc)
   put context pointer on queue
   }

  fun1(args){
    something
  }
 }

In I make an instance of class A in Thread1 running on CPU1, and then try to pop the context off the queue and swap it in from thread2 on CPU2, will there be a problem because the object was instantiated in the stack of Thread1 in CPU1 and hence the pointer to fun1 which is attacked to this context is not reachable?


Solution

  • No. The whole point of threads is that they share all memory.