CUDA / OpenGL interopability in multiple threads

Does anyone know what if sharing OpenGL PBO/Texture is supported/valid
in CUDA while in a multi-threaded environment?

For example:

Suppose I create an OpenGL PBO/Texture in my main thread
previously shared with an additional worker thread OpenGL context.
I then register this OpenGL buffer with CUDA using cudaGraphicsGLRegisterBuffer and pass it to my worker threads.

Is the ability to view and modify this data in the worker thread supported/allowed functionality?

I have implemented this on Windows XP and it works fine. But when I migrate
to Windows Vista/7 it fails when attempting to create memory in my worker
threads with “Out Of Memory” errors.